IPMA's API, mapped
Kept by incident.ipma@web-summit.dinis, 11 November 2026, 11:50 UTC
Kept by incident.ipma@web-summit.dinis, 11 November 2026, 11:50 UTC
IPMA's open data · Warnings over time · Stations · The sea · Cities: forecast and observed · The API, mapped · What we learned · Browse the files · Licence and terms
IPMA's documentation is one page, in Portuguese: api.ipma.pt (read 2026-11-11 02:12 UTC). No key, no registration; the responses allow any origin. On times IPMA says: "As previsões são apresentadas em horas UTC. No continente e na Região Autónoma da Madeira a hora legal é igual à UTC, no horário de inverno." No time in any response carries a zone, except the climate CSVs (+00:00). No-data value: -99.0 (stated for the observations).
| Data set | Format | Files read | Bytes | IPMA's file dated (UTC) | We read it (UTC) | IPMA says it updates |
|---|---|---|---|---|---|---|
| Weather warnings, up to 3 days | JSON | 1 | 46303 | 2026-11-11 11:15 | 2026-11-11 11:47 | not stated |
| Data set | Format | Files read | Bytes | IPMA's file dated (UTC) | We read it (UTC) | IPMA says it updates |
|---|---|---|---|---|---|---|
| Daily forecast up to 5 days, by place | JSON | 35 | 41493 | 2026-11-11 11:31 | 2026-11-11 11:47 | taxa de atualização horária; the model runs twice a day: "a corrida das 00UTC (disponibilizada em regra a partir das 10:00) e das 12UTC (disponibilizada em regra a partir das 20:00)" |
| Daily forecast up to 3 days, all places for one day | JSON | 3 | 20585 | 2026-11-11 11:31 | 2026-11-11 11:49 | taxa de atualização horária |
| Ultraviolet index forecast | JSON | 1 | 16080 | 2026-11-11 11:00 | 2026-11-11 11:49 | not stated |
| Fire risk forecast up to 3 days, by municipality | JSON | 3 | 72906 | 2026-11-11 09:35 | 2026-11-11 11:49 | taxa de atualização horária |
| Data set | Format | Files read | Bytes | IPMA's file dated (UTC) | We read it (UTC) | IPMA says it updates |
|---|---|---|---|---|---|---|
| Sea state forecast up to 3 days, by day | JSON | 3 | 9824 | 2026-11-11 11:31 | 2026-11-11 11:49 | taxa de atualização horária |
| Shellfish harvesting bans by production zone | GeoJSON | 1 | 3411715 | 2026-11-09 16:20 | 2026-11-11 11:50 | not stated (the latest bulletin) |
| Data set | Format | Files read | Bytes | IPMA's file dated (UTC) | We read it (UTC) | IPMA says it updates |
|---|---|---|---|---|---|---|
| Station observations, hourly, last 24 hours | JSON | 1 | 1063281 | 2026-11-11 11:35 | 2026-11-11 11:50 | Taxa de atualização horária. |
| Station observations, last 3 hours, with coordinates | GeoJSON | 1 | 435978 | 2026-11-11 11:31 | 2026-11-11 11:50 | Taxa de atualização horária. |
| Data set | Format | Files read | Bytes | IPMA's file dated (UTC) | We read it (UTC) | IPMA says it updates |
|---|---|---|---|---|---|---|
| Seismic events, last 30 days | JSON | 2 | 146033 | 2026-11-11 11:36 | 2026-11-11 11:50 | Atualização é horária. |
| Data set | Format | Files read | Bytes | IPMA's file dated (UTC) | We read it (UTC) | IPMA says it updates |
|---|---|---|---|---|---|---|
| Daily precipitation by municipality | CSV | 1 | 635427 | 2026-11-11 03:10 | 2026-11-11 11:50 | Taxa de atualização diária. |
| Daily air temperature by municipality | CSV | 1 | 896257 | 2026-11-11 03:10 | 2026-11-11 11:50 | Taxa de atualização diária. |
| Daily reference evapotranspiration by municipality | CSV | 1 (1 not 200) | · | · | 2026-11-11 11:50 | Taxa de atualização diária. |
| Daily reference evapotranspiration by municipality (the address IPMA's directory lists) | ZIP of SVG | 1 | 431062 | 2026-06-20 19:12 | 2026-11-11 11:50 | not stated |
| Data set | Format | Files read | Bytes | IPMA's file dated (UTC) | We read it (UTC) | IPMA says it updates |
|---|---|---|---|---|---|---|
| Places: district capitals and islands | JSON | 1 | 10071 | 2021-12-07 14:48 | 2026-11-11 11:47 | not stated |
| Coastal places | JSON | 1 | 2268 | 2020-02-04 12:21 | 2026-11-11 11:47 | not stated |
| Weather stations | JSON | 1 | 49864 | 2026-11-11 11:35 | 2026-11-11 11:47 | not stated |
| Weather types | JSON | 1 | 4954 | 2024-06-07 09:55 | 2026-11-11 11:47 | not stated |
| Wind strength classes | JSON | 1 | 644 | 2018-01-18 17:50 | 2026-11-11 11:47 | not stated |
| Precipitation intensity classes | JSON | 1 | 578 | 2019-11-06 17:27 | 2026-11-11 11:47 | not stated |
| Weather symbols (SVG, zipped) | ZIP of SVG | 1 | 179447 | 2022-05-12 11:47 | 2026-11-11 11:47 | not stated |
| Data set | Format | Files read | Bytes | IPMA's file dated (UTC) | We read it (UTC) | IPMA says it updates |
|---|---|---|---|---|---|---|
| Climate series by district: reference evapotranspiration | a folder per mainland district, files per municipality | · | · | · | · | not documented |
| Climate series by district: a drought index (the folder is named mpdsi) | a folder per mainland district, files per municipality | · | · | · | · | not documented |
| Climate series by district: total precipitation | a folder per mainland district, files per municipality | · | · | · | · | not documented |
| Climate series by district: maximum temperature | a folder per mainland district, files per municipality | · | · | · | · | not documented |
| Climate series by district: minimum temperature | a folder per mainland district, files per municipality | · | · | · | · | not documented |
| Monthly and daily long series (spreadsheets), Lisbon from 1855 | XLSX and XLS | · | · | · | · | not documented |
| A list of place ids for district 06 (Coimbra) | JSON (invalid) | 1 | 277 | 2018-02-27 16:20 | 2026-11-11 11:50 | not documented |
| zonas.gpkg (a GeoPackage, 61 MB as listed) | GeoPackage | 1 | · | 2024-06-19 10:01 | 2026-11-11 11:50 | not documented |
www.ipma.pt itself reads other addresses under https://api.ipma.pt/public-data/ (hourly forecasts, for example). They are not documented, the /public-data/ path is outside the open-data documentation and its terms for reuse are not stated: not mapped here until Dinis says so.
IPMA's server lists its folders under /open-data/. We walked 115 of them (all); names, sizes and dates as listed are in listing.json. That is how the data sets marked "not documented" were found.
The machine-readable map: api.json. What we hold of each file: latest.json. Every read: reads.json. Licence and terms.