There have been many changes and upgrades between v3.1 and v4.0 to improve the user experience and provide more relevant, and accurate forecasts.
To get started with transitioning over from v3.1 to v4.0, you can start by replacing the v3_1 in the URLs with v4_0 and comparing the outputs.
From:
curl --location 'https://forecast.meteonomiqs.com/v3_1/forecast/48.1374/10.5753/' \
--header 'x-api-key: <api-token>' \
--header 'Accept-Language: de-de'To:
curl --location 'https://forecast.meteonomiqs.com/v4_0/forecast/48.1374/10.5753/' \
--header 'x-api-key: <api-token>' \
--header 'Accept-Language: de-de'Or, if you’re using the API without specifying a version number, add the number after the https://forecast.meteonomiqs.com part of the URL.
From:
curl --location 'https://forecast.meteonomiqs.com/forecast/48.1374/10.5753/' \
--header 'x-api-key: <api-token>' \
--header 'Accept-Language: de-de'To:
curl --location 'https://forecast.meteonomiqs.com/v4_0/forecast/48.1374/10.5753/' \
--header 'x-api-key: <api-token>' \
--header 'Accept-Language: de-de'Please note: effort was made to make sure that the v4.0 endpoints matched the v3.1 endpoints as closely as possible. However, there are still some breaking changes between the versions. Please refer to this changelog and test all applications with the new endpoints thoroughly before deployment to ensure that no key functionality is missing.
Starting with a basic overview of major changes.
v4_0pollenwcom has been renamed to just pollen| Tag | Old name | New name |
|---|---|---|
| Forecast | “Get Forecast” (with latitude and longitude) |
“Get forecast by coordinates” |
| Forecast | “Get Forecast” (with countryCode and postCode) |
“Get forecast by location” |
| Forecast | “Get Forecast Summary” | “Get forecast summary by coordinates” |
| Forecast | “Get Forecast Spaces” | “Get forecast spaces by coordinates” |
| Forecast | “Get Forecast Hourly” | “Get hourly forecast by coordinates” |
| Forecast2 | “Get Forecast” | “Get forecast2 by coordinates” |
| Warnings | “Warnings endpoints” | “Get active warnings by coordinates” |
| Nowcast | “Get observation with realtime weather, precipitation risk and station data when available” | “Get nowcast weather forecast by coordinates” |
| Locations | “Location by coordinates” | “Get nearby location by coordinates” |
| Tag | Endpoint | Reason |
|---|---|---|
| Warnings | “Warnings regions endpoints” | Redundant, information already supplied by “Get active warnings by coordinates” |
| Warnings | “Warnings ID endpoints” | Redundant, information already supplied by “Get active warnings by coordinates” |
| Hood | (all endpoints) | New backend data structure means output would have been identical to Pollen and Forecast endpoints. Have been replaced with those endpoints. Station data is also no longer returned. Realtime data is supplied by the Nowcast endpoint |
| Nowcast | “Get pollen forecast” | New backend data structure means output would have been identical to Pollen endpoints. Has been replaced with that endpoint |
| Tag | Endpoint | Description |
|---|---|---|
| Warnings | “Get warning details by warning ID” | Retrieves individual warning information for a given warning ID |
| Warnings | “Get active warnings by warncell ID” | Retrieves warnings for a given warncell (national classification for the given area, country dependent) |
| Locations | “Search locations” | Searches for locations and returns a number of results based on the search query string |
/locations/nearBy/{latitude}/{longitude}/locations/nearby/{latitude}/{longitude}Resource not foundsummary and morning/afternoon) have now been standardised and return the same format responsemax, min, and avg respectively. All have the number type and are nullableclouds values are still returned as percentages, but are now transformed from oktas, which means all percentages will be a multiple of 12.5 due to that being 1/8th of 100null for the value e.g. uv_index in Forecast2Below is a more detailed list about the changes to the API endpoints.
GET /forecast/{latitude}/{longitude} (GET /forecast/byLocation/{countryCode}/{postCode})Each of the changes in summary, spaces, and hourly are the same as in their respective limited API endpoints.
summaryRenamed:
rainHours to rainyHourswind.significationWind to wind.significantWindpressure.mean to pressure.avgrelativeHumidity.mean to relativeHumidity.avgclouds.mean to clouds.avgChanged: - Changed highestWarning to null - deprecated, use warnings endpoints instead
Removed:
dateWithTimezone - use date for the date and from and to for the UTC times insteadweatherNg - use weather insteadsnowHeight - deprecatedfreshSnow and replaced with the range prec.freshSnowRangeMin (minimum) and prec.freshSnowRangeMax (maximum)snowLine.avg and snowLine.unitwindchill.avg - deprecated, use range insteadspacesForecast for spaces has been extended from 10 to 16 days.
Renamed:
<space>.rainHours to <space>.rainyHours<space>.wind.significationWind to <space>.wind.significantWind<space>.pressure.mean to <space>.pressure.avg<space>.relativeHumidity.mean to <space>.relativeHumidity.avg<space>.clouds.mean to <space>.clouds.avgChanged: - Changed highestWarning to null - deprecated, use warnings endpoints instead
Removed:
forenoon - deprecated<space>.weatherNg - use <space>.weather instead<space>.snowHeight - deprecated, previously null<space>.freshSnow and replaced with the range <space>.prec.freshSnowRangeMin (minimum) and <space>.prec.freshSnowRangeMax (maximum)<space>.snowLine.avg and <space>.snowLine.unit - use range instead<space>.wind.mean - use wind.avg instead<space>.windchill.avg - use range insteadhourlyAdded:
dateWithTimezone - end of the hour in UTC timefrom and to - indicates start and end times of forecast in UTCChanged:
snowLine to prec.snowLine and is now a single value instead of an objectwindchill to only return a numberhighestWarning to null - deprecated, use warnings endpoints insteadRenamed:
wind.significationWind to wind.significantWindwind.mean to wind.avgRemoved:
rainHours - deprecated, use weather instead for weather conditionsGET /forecast/{latitude}/{longitude}/summaryRenamed:
rainHours to rainyHourswind.significationWind to wind.significantWindpressure.mean to pressure.avgrelativeHumidity.mean to relativeHumidity.avgclouds.mean to clouds.avgChanged: - Changed highestWarning to null - deprecated, use warnings endpoints instead
Removed:
dateWithTimezone - use date for the date and from and to for the UTC times insteadweatherNg - use weather insteadsnowHeight - deprecated, previously nullfreshSnow and replaced with the range prec.freshSnowRangeMin (minimum) and prec.freshSnowRangeMax (maximum)snowLine.avg and snowLine.unitwindchill.avg - deprecated, use range insteadGET /forecast/{latitude}/{longitude}/hourlyAdded:
dateWithTimezone - start of the hour in UTC timefrom and to - indicates start and end times of forecast in UTCprec.freshSnowRangeMin and prec.freshSnowRangeMax to indicate min and max fresh snow linesdewpoint to indicate the dewpoint temperatureChanged:
snowLine to prec.snowLine and is now a single value instead of an objectwindchill to only return a numberhighestWarning to null - deprecated, use warnings endpoints insteadRenamed:
wind.significationWind to wind.significantWindwind.mean to wind.avgRemoved:
rainHours - deprecated, use weather instead for weather conditionsGET /forecast/{latitude}/{longitude}/spacesForecast for spaces has been extended from 10 to 16 days.
Renamed:
<space>.rainHours to <space>.rainyHours<space>.wind.significationWind to <space>.wind.significantWind<space>.pressure.mean to <space>.pressure.avg<space>.relativeHumidity.mean to <space>.relativeHumidity.avg<space>.clouds.mean to <space>.clouds.avgChanged: - Changed highestWarning to null - deprecated, use warnings endpoints instead
Removed:
forenoon - deprecated<space>.weatherNg - use <space>.weather instead<space>.snowHeight - deprecated, previously null<space>.freshSnow and replaced with the range <space>.prec.freshSnowRangeMin (minimum) and <space>.prec.freshSnowRangeMax (maximum)<space>.snowLine.avg and <space>.snowLine.unit<space>.wind.mean - use wind.avg instead<space>.windchill.avg - use range insteadGET /locations/nearby/{latitude}/{longitude}Fixed:
items.admin1.location.slugRenamed:
items.zipCodes to items.zipcodesscores.seo_priority to scores.seoPriority - standardising value name styles in endpointRemoved:
pagination - deprecated, previously only nullitems.iso2 - deprecated, previously only nullitems.isoPath - deprecated, previously only nullitems.liesIn - deprecated, previously only had one value skiareas which was always nullitems.nameTranslations - deprecated, previously only an empty listitems.searchContext - deprecated, previously only nullitems.warnregions - deprecated, previously only nullGET /nowcast/weather/{latitude}/{longitude}Added:
precipitationRisk.items.precType to indicate the time of precipitationtemperature.value to indicate single temperature value for the periodto and from to both precipitationRisk and realtimeWeather items arrays to indicate forecast window in UTC timeprecipitationRisk.items.times.startTime to indicate when the precipitation event startedChanged:
items.date to be just the date in YYYY-MM-DD format and display local date, if you were using this field for the datetime, please use items.from insteadprecipitationRisk.items.radar.value to represent a new classification which is available under the Nowcast Radar Values section in the References. The old classification was as follows: 0 = no data, 1 = no rain / snow fall, 2 - 7 = increasing rain intensity, 12 - 17 = increasing snow intensityRemoved:
station - deprecated, nearly all values were null for the objectprecipitationRisk.items.isRain - deprecated, previously only nullprecipitationRisk.items.items.radar.isRain - deprecated, use drizzlePossible insteadprecipitationRisk.items.run - deprecatedprecipitationRisk.items.items.weather.shortText - deprecated, this information is also present in radarrealtimeWeather.items.temperature.min, realtimeWeather.items.temperature.max, and realtimeWeather.items.temperature.avg - single value now for 5 minute intervals (value)realtimeWeather.items.fingerprint - deprecated, only one fingerprint at root level nowrealtimeWeather.items.run - deprecatedrealtimeWeather.items.source - deprecated, previously only hood, and that source isn’t listed any morerealtimeWeather.items.items.weather.shortText - deprecated, same output as longTextrealtimeWeather.items.weather.stateNew - deprecated, due to being duplication of stateGET /pollen/byCoordinates/{latitude}/{longitude} (GET /pollen/byLocation/{countryCode}/{postCode})Changed:
pollen instead of pollenwcomdaily.items.pollen_forecast pollen names to lowercase and removed all spaces in pollen names. Please refer to the pollen mapping tabledaily.items.pollen_index to be an integer type instead of a stringified integerRenamed:
daily.items.pollen-forecast to daily.items.pollen_forecastRemoved:
zip-code - deprecated, zip code information is no longer returned by the APIrelease_date - deprecatedcopyright - deprecated, no longer returned by the APIGET /warnings/{latitude}/{longitude}Added:
activeWarnings.severityInt - numerical severity value, scales with severity linearly from 1-4Changed:
Removed:
activeWarnings.msgType - deprecated, previously nullactiveWarnings.references - deprecated, use code insteadGET /forecast2/{latitude}/{longitude}Added:
parameters object with frequency value to indicate hourly / daily depending on whether that parameter was used as part of the request, not included in response if neither is usedfrequency.hourly.datetime_utc and frequency.hourly.datetime_local to indicate both the UTC and local datetimes of the forecast (this replaces the old frequency.hourly.datetime parameter)Changed:
parameters.weather_state_text.value and parameters.wind_direction_text.value to return values in German, to standardise the language across the entire APIRenamed:
frequency.daily.parameters.temperature.minimum to frequency.daily.parameters.temperature.minfrequency.daily.parameters.temperature.maximum to frequency.daily.parameters.temperature.maxfrequency.daily.parameters.wind_speed.minimum to frequency.daily.parameters.wind_speed.minfrequency.daily.parameters.wind_speed.maximum to frequency.daily.parameters.wind_speed.maxfrequency.daily.parameters.relative_humidity.minimum to frequency.daily.parameters.relative_humidity.minfrequency.daily.parameters.relative_humidity.maximum to frequency.daily.parameters.relative_humidity.maxfrequency.daily.parameters.relative_humidity.mean to frequency.daily.parameters.relative_humidity.avgfrequency.daily.parameters.sea_level_pressure.minimum to frequency.daily.parameters.sea_level_pressure.minfrequency.daily.parameters.sea_level_pressure.maximum to frequency.daily.parameters.sea_level_pressure.maxfrequency.daily.parameters.sea_level_pressure.mean to frequency.daily.parameters.sea_level_pressure.avgfrequency.daily.parameters.cloud_coverage.minimum to frequency.daily.parameters.cloud_coverage.minfrequency.daily.parameters.cloud_coverage.maximum to frequency.daily.parameters.cloud_coverage.maxfrequency.daily.parameters.cloud_coverage.mean to frequency.daily.parameters.cloud_coverage.avgRemoved:
frequency.daily.parameters.temperature.mean - deprecated, use value range insteadfrequency.daily.parameters.wind_speed.mean - deprecated, use value range insteadfrequency.hourly.parameters.surface_pressure - deprecated, use pressure insteadfrequency.hourly.parameters.slippery_roads_index - deprecated, no longer in usefrequency.hourly.datetime - please use either frequency.hourly.datetime_utc or frequency.hourly.datetime_local instead