# Changelog (API)

All notable improvements and extensions to the Meteonorm API are documented here.
For changes concerning algorithms and data, see [Changelog algorithms & data](changelog-algorithms).

Note that we won't make any breaking changes to API version `/v1`.
If breaking changes are inevitable, we will release a new version at `/v2` while keeping `/v1` stable.

## 2026-07-09

* The endpoints `/climate/tmy` and `/climate/amy` now support the response format `phpp_10`.


## 2026-07-08

* New `/climate/import/monthly` endpoint that allows weather data generation from
  user-supplied monthly global horizontal irradiance and optionally also monthly
  air temperature values.


## 2026-06-18

* Add `tracking_mode` query parameter to all `/climate`, `/forecast`, and `/observation`
  endpoints. Set `tracking_mode=1_axis` to enable North-South horizontal single-axis tracking
  with backtracking to avoid row-to-row shading. When enabled, `surface_azimuth` and
  `surface_tilt` are ignored and computed dynamically from the sun position. The tracker assumes
  a ground coverage ratio (GCR) of 0.3 and a maximum tilt angle of 45 degrees.
* Add `surface_azimuth` and `surface_tilt` as output parameters to all `/climate`, `/forecast`,
  and `/observation` endpoints. For fixed orientations, these return constant values matching the
  input. When `tracking_mode=1_axis` is enabled, they return the dynamically computed tracker
  orientation at each timestep.


## 2026-06-01

* The `epw` response format of the /climate/tmy and /climate/amy endpoints now uses Windows-style
  (CRLF) line endings.


## 2026-05-27

* Add endpoint `/account` to retrieve account and subscription information.
  Use it to check your current products, token balances, and validity periods.
  The response includes a list of products, each with its name, expiry date,
  remaining token balance (if applicable), and monthly refill date (for monthly subscriptions).


## 2026-04-16

* The endpoints `/climate/tmy` and `/climate/amy` now support the additional frequencies:
  `1_month`, `1_day`, and `15_minute`.
* The `/climate/amy` endpoint now supports the following response formats:
  `epw`, `pvsyst`, `tmy3`, `pvsol`, `polysun`, `trj`, `ida_ice_v4`, `ida_ice_v5`,
  `wufi_wac`, `sia_2028`, `sia_380_1`.


## 2026-02-25

* The /climate/tmy endpoint now supports the `sia_2028` response format.


## 2026-02-24

* The /climate/tmy endpoint now supports the `sia_380_1` response format.


## 2026-02-19

* The /climate/tmy endpoint now supports the `trj` response format.
  * Note: `trj` is a DWD-specific format; coverage is restricted to Europe.


## 2025-12-08

* Add version information (Meteonorm version and git commit) to the `Metadata` object of all JSON responses
* Add response headers `Meteonorm-Version` and `Meteonorm-Commit` to all compute endpoints
  (`/climate`, `/forecast`, `/observation`, `/horizon`, `/altitude`)


## 2025-12-05

* Deprecate `data_version` query parameter in `/climate/tmy` endpoint


## 2025-12-03

* New API endpoint /climate/amy that provides _Actual Meteorological Years_
  (as opposed to _Typical Meteorological Years_) from 2020 onwards. /climate/amy provides
  the same parameters as /climate/tmy.
* New API endpoint /observation/historical that provides historical observations from 2020
  onwards. /observation/historical provides the same parameters as /observation/realtime.


## 2025-10-24

* The `/climate` endpoints now support the extreme settings: `poe_10_months`, `poe_10_year`,
  `poe_90_months`, `poe_90_year` and `worst_case_year`.


## 2025-10-23

* The /climate endpoint now supports the `polysun` response format.


## 2025-10-17

* The /climate endpoint now supports the `ida_ice_v4`, `ida_ice_v5` and `pvsol` response format.


## 2025-10-16

* Fix the OpenAPI specification to accurately reflect the API's behavior:
  `nullable: true` was missing for the `Values` schema.


## 2025-10-15

* The `/observation/realtime` endpoint now covers the whole globe. For locations that lack
  satellite coverage, i.e., beyond 60°N or 60°S, we use alternative data sources.
* Fix error when requesting the exact combination `&parameters=global_clear_sky_irradiance,weather_symbol`.


## 2025-09-29

* The parameter `snow_depth` is now available for /observation endpoints (it used to return zero).
  `snow_depth` in /forecast endpoints has improved accuracy in western Europe.


## 2025-09-01

* Fix `cloud_cover` values in okta (0-8) not always being whole numbers for
  `frequency=1_minute` and `frequency=15_minutes`.
* Fix `wind_direction` values sometimes being incorrect for
  `frequency=1_minute` and `frequency=15_minutes`.


## 2025-08-31

* Fix `precipitation` values being incorrect by orders of magnitude
  for `frequency=1_minute` and `frequency=15_minutes`.


## 2025-07-31

* The `/v1/forecast` and `/v1/observation` endpoints now support a `response_format` query parameter. The available response formats are `csv` and `json`.
* The `/v1/climate` endpoint offers new response formats: `csv`, `epw`, `tmy3`, and `pvsyst`.


## 2025-07-02

* All API endpoints now return 400 "bad request" if the URL query string contains
  non-existent parameters. For example: `/v1/forecast/precision?xxxxx=123&...` will return a 400 error.
