Skip to content
Climate API

Climate API

Climate of a point: yearly solar radiation and sunshine hours, temperature and precipitation normals with trend, hot and frost days, snow days per winter and the drought index. Source: GeoSphere Austria, CC BY 4.0. The same object is properties.climate in the parcel dossier.

Base URL: https://api.mapx.at · Rate-limit zone: search (10/s) · Guide: Parcels

Climate at a point (solar potential, normals, heat days, snow, drought)

GET /v1/climate/{coordinate}

Climate of one point from open data of GeoSphere Austria: solar potential (yearly global radiation in kWh/m2 and sunshine hours, mean of the last 3 complete years, 100 m), temperature and precipitation (normal 1991-2020, last 10 years, trend, monthly normals, 1 km), hot/summer/frost/ice days and tropical nights per year, snow days per winter and the current snow depth, and the drought index SPEI (90 and 365 days, latest value with class).

More

Each section has source (dataset, cell, last day of data) and retrieved_at. Values are derived per grid cell and cached; the first request for a new cell fetches them from the source and can take 10 to 20 seconds (sections limits the work), later requests come from the cache. The same object is part of the parcel dossier (properties.climate). Outside Austria 404; 503 while the source is unavailable or rate limited. Data source: GeoSphere Austria (APOLIS, SPARTACUS, SNOWGRID-CL, WINFORE), CC BY 4.0 (attribution required).

Parameters

NameInTypeRequiredDefaultDescription
coordinatepathstringyes–lon,lat or lon,lat.json
sectionsquerystringallComma-separated sections to return (default: all)

Example

curl -s -H "Authorization: Bearer YOUR_TOKEN" "https://api.mapx.at/v1/climate/15.3294,48.2272?sections=solar,snow" | jq

Example response

{
  "location": [
    15.3294,
    48.2272
  ],
  "status": "complete",
  "solar": {
    "period": "2023-2025",
    "years": 3,
    "global_radiation_kwh_m2_year": 1287.1,
    "global_radiation_horizontal_kwh_m2_year": 1219.1,
    "direct_radiation_kwh_m2_year": 911.6,
    "diffuse_radiation_kwh_m2_year": 375.5,
    "sunshine_hours_year": 2949.5,
    "relative_sunshine_pct": 60.3,
    "by_year": [
      {
        "year": 2025,
        "global_radiation_kwh_m2": 1310.8,
        "sunshine_hours": 2958.4
      }
    ],
    "source": {
      "provider": "GeoSphere Austria",
      "dataset": "apolis-v2-1d-100m",
      "name": "APOLIS solar radiation",
      "license": "CC BY 4.0",
      "resolution_m": 100,
      "cell_center": [
  …
FieldTypeDescription
locationarray[longitude, latitude] (WGS84), optional height.
statusstringpartial: some sections are still being loaded (parcel dossier: retry after retry_after_s)
solarobject,nullSolar potential: yearly sums, mean of the last 3 complete years (APOLIS, 100 m)
temperatureobject,nullAir temperature (SPARTACUS, 1 km)
precipitationobject,nullPrecipitation and sunshine (SPARTACUS, 1 km)
temperature_extremesobject,nullHot, summer, frost and ice days per year, tropical nights (SPARTACUS daily data, 1 km); normal period 1991-2020 and last 10 complete years
snowobject,nullSnow cover (SNOWGRID-CL model, 1 km)
droughtobject,nullDrought index SPEI (WINFORE, 1 km), latest value

Errors (details: error catalog)

StatusMeaning
400A parameter is missing or invalid
401Token missing or invalid (missing-token, invalid-token, token-expired)
403Token not allowed here (origin-not-allowed, origin-missing, pk-not-allowed, app-not-allowed, token-blocked, ip-not-allowed)
404Not found (name, path or position)
429Rate limit exceeded, wait Retry-After seconds
503Data temporarily unavailable

Playground

Playground
curl
The response appears here.