Weather — entry 012 of 31

IPMA

Verified Jul 2026

IPMA's open-data service is a plain directory of continuously-refreshed static JSON files, not just a single forecast endpoint: it covers daily/hourly weather forecasts, real-time station observations, sea-area and district warnings for mainland Portugal, the Azores and Madeira, plus separate seismic and biology (pollen) datasets from the same institute. No registration is required, though IPMA asks heavy users to email its webmaster for usage statistics.

IPMA's open-data service is a plain directory of static JSON files rather than a query API — you fetch a location's daily forecast by its numeric globalIdLocal code, resolved ahead of time from a separate locations file.

forecasthistoricalgovernmentmarineno-key
AuthenticationNone requiredCall it straight away — no key, no signup.
HTTPSSupportedTraffic is encrypted in transit.
CORSEnabledCallable directly from browser JavaScript.
PricingFreeNo paid tier — free for the documented use case.
FormatsJSONResponses can be requested as JSON.

GreatAPIs Score

Score74out of 100
Authentication25/25No authentication required
Pricing20/20Free to use
Docs0/20No docs or spec available
Formats9/15Single response format
Freshness20/20Verified within 6 months

Embed this badge

Scored 74 on greatapis.com
<a href="https://greatapis.com/api/ipma/"><img src="https://greatapis.com/badge/ipma.svg" alt="Scored 74 on greatapis.com"></a>

Auth quickstart

  1. No API key required — requests are public and keyless.
Stored keyNo key stored

Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.

5-day daily forecast for Lisbon (globalIdLocal 1110600)

GEThttps://api.ipma.pt/open-data/forecast/meteorology/cities/daily/1110600.json

200 application/json

{
  "owner": "IPMA",
  "country": "PT",
  "data": [
    {
      "precipitaProb": "0.0",
      "tMin": "17.3",
      "tMax": "29.4",
      "predWindDir": "N",
      "idWeatherType": 1,
      "classWindSpeed": 2,
      "longitude": "-9.1286",
      "forecastDate": "2026-07-26",
      "latitude": "38.7660"
    },
    { "...": "4 more days in the 5-day window, same shape" }
  ],
  "globalIdLocal": 1110600,
  "dataUpdate": "2026-07-26T02:31:03"
}

Developer reference

Base URLhttps://api.ipma.pt/open-data

Gotchas & limits

  • There's no name-based lookup on this endpoint — resolve a city to its numeric `globalIdLocal` first via `/open-data/distrits-islands.json` (1110600 maps to "Lisboa" there), then request `/forecast/meteorology/cities/daily/<globalIdLocal>.json`
  • `idWeatherType` is a bare numeric code, not a description — cross-reference it against `/open-data/weather-type-classe.json`, which maps each code to `descWeatherTypeEN`/`descWeatherTypePT` (e.g. `-99` → "--", `0` → "No information")
  • Forecast data only regenerates twice a day, tied to IPMA's own model runs: the 00 UTC run is normally available from 10:00 UTC and the 12 UTC run from 20:00 UTC, per the live api.ipma.pt homepage — polling more often just re-fetches the same file
  • Despite `content-type: application/json`, numeric-looking fields such as `tMin`, `tMax`, and `precipitaProb` are JSON strings, not numbers — parse them explicitly rather than assuming a numeric type