{"openapi":"3.1.0","info":{"title":"Fintväder API","version":"1.0.0","description":"Swedish weather from SMHI and MET Norway, normalised and cached, with Säkerhetsmätaren confidence and Prognosträff accuracy. Free to use; credit \"Data: SMHI, MET Norway (CC BY 4.0), bearbetad av Fintväder\" and link to https://fintvader.se.","license":{"name":"CC BY 4.0 (data)","url":"https://creativecommons.org/licenses/by/4.0/"}},"servers":[{"url":"https://fintvader.se"}],"paths":{"/v1/forecast":{"get":{"summary":"Point forecast from SMHI and MET Norway for a ~1 km cell","parameters":[{"name":"place","in":"query","schema":{"type":"string"},"description":"Place slug, e.g. uppsala"},{"name":"lat","in":"query","schema":{"type":"number"}},{"name":"lon","in":"query","schema":{"type":"number"}}],"responses":{"200":{"description":"Forecasts per source"},"400":{"description":"Bad coordinates"}}}},"/v1/nowcast":{"get":{"summary":"MET Nowcast: precipitation every 5 minutes, ~2 h","parameters":[{"name":"place","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Nowcast"}}}},"/v1/warnings":{"get":{"summary":"Active SMHI warnings for a point, texts verbatim","parameters":[{"name":"place","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Warnings"}}}},"/v1/skill":{"get":{"summary":"Prognosträff for Sweden: SMHI and MET Norway against SMHI observations, last 30 days, per month and per place","responses":{"200":{"description":"Accuracy for all places"},"404":{"description":"Not enough data yet"}}}},"/v1/skill/{place}":{"get":{"summary":"Prognosträff: how often each source was right here","parameters":[{"name":"place","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Accuracy"},"404":{"description":"Not enough data yet"}}}},"/v1/warnings/map":{"get":{"summary":"Active SMHI warning areas as GeoJSON, texts verbatim (Swedish and SMHI English)","responses":{"200":{"description":"GeoJSON FeatureCollection of MultiPolygons"}}}},"/v1/climate":{"get":{"summary":"Today's maximum against normal for every place with a station series","responses":{"200":{"description":"Places with anomaly"}}}},"/v1/climate/{place}":{"get":{"summary":"Klimatkontext: today's maximum against the same date in earlier years at a nearby SMHI station","parameters":[{"name":"place","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Climate context"},"404":{"description":"No station series for this place"}}}},"/v1/sea-temperature":{"get":{"summary":"Latest sea surface temperature at SMHI coastal stations (GeoJSON)","responses":{"200":{"description":"GeoJSON FeatureCollection of points"}}}},"/v1/places":{"get":{"summary":"Featured places (or all with ?all=1)","responses":{"200":{"description":"Places"}}}},"/v1/observations":{"get":{"summary":"Latest SMHI station observations (GeoJSON)","responses":{"200":{"description":"Stations"}}}},"/v1/kp":{"get":{"summary":"NOAA SWPC planetary Kp forecast","responses":{"200":{"description":"Kp periods"}}}},"/v1/status":{"get":{"summary":"Data freshness: how old each ingest job’s last success is","responses":{"200":{"description":"All feeds current"},"503":{"description":"A feed is behind, or ingest has stopped"}}}},"/mcp":{"post":{"summary":"fintvader-mcp: Model Context Protocol (Streamable HTTP)","responses":{"200":{"description":"JSON-RPC response"}}}}}}