Hämta svensk väderdata via API
SMHI har riktigt bra väderdata. Det knepiga är att använda den i en app. Du behöver hantera koordinatbaserade uppslag, korta parameterkoder och djupt nästlad JSON innan du kommer fram till själva prognosen.
Den här guiden visar den kortare vägen: ett API-anrop, stadsnamn in och JSON som går att använda direkt.
Problemet med SMHI:s råa API
SMHI:s meteorologiska prognos-API (opendata-download-metfcst) ber dig göra några saker först:
- Hitta exakta GPS-koordinater — det finns ingen stadsnamnssökning. "Stockholm" behöver bli
lat=59.33&lon=18.07innan du anropar API:t. - Översätta parameterkoder — temperatur är
t, vindhastighet ärws, nederbörd ärpmean. Det finns 30+ sådana. - Gå igenom tidsserier — varje tidssteg har sin egen parameterlista. Ingen färdig nulägesrad. Ingen daglig vy.
Rått SMHI API-anrop
curl "https://opendata-download-metfcst.smhi.se/api/category/pmp3g/version/2/geotype/point/lon/18.07/lat/59.33/data.json"
{
"approvedTime": "2026-03-12T14:00:00Z",
"referenceTime": "2026-03-12T12:00:00Z",
"geometry": { "type": "Point", "coordinates": [[18.07, 59.33]] },
"timeSeries": [
{
"validTime": "2026-03-12T15:00:00Z",
"parameters": [
{ "name": "t", "levelType": "hl", "level": 2, "unit": "Cel", "values": [4.2] },
{ "name": "ws", "levelType": "hl", "level": 10, "unit": "m/s", "values": [3.1] },
{ "name": "pmean", "levelType": "hl", "level": 0, "unit": "kg/m2/h", "values": [0.0] },
{ "name": "Wsymb2", "levelType": "hl", "level": 0, "unit": "category", "values": [3] }
// ... 20+ fler parametrar
]
}
// ... 100+ fler tidssteg
]
}
En enkel fråga som "vad är temperaturen i Stockholm?" blir snabbt ett litet parsprojekt: koordinater, anrop, timeSeries, parameteruppslag och till slut values[0].
Mycket jobb för ett värde.
Apiverket-sättet
SMHI direkt
// 1. Geokoda stadsnamn på något sätt
const lat = 59.33, lon = 18.07;
// 2. Hämta rå SMHI-data
const res = await fetch(
\`https://opendata-download-metfcst
.smhi.se/api/category/pmp3g
/version/2/geotype/point
/lon/${lon}/lat/${lat}
/data.json`
);
// 3. Parsa kryptiskt svar
const data = await res.json();
const now = data.timeSeries[0];
const temp = now.parameters
.find(p => p.name === "t")
.values[0];
Apiverket
const res = await fetch(
"https://apiverket.se/v1/weather" +
"/Stockholm/forecast",
{
headers: {
Authorization:
"Bearer sk_live_YOUR_KEY"
}
}
);
const { data } = await res.json();
// data.current.temperature = 4.2
// data.current.description = "Partly cloudy"
// data.forecast = [{day, high, low, ...}]
Ett anrop istället för ett parsprojekt. Apiverket hanterar geokodning, parametermappning och svarsformatering. Du får stadsnamnssökning, läsbara beskrivningar och dagliga prognossammanfattningar.
Vad du får
Anropa /v1/weather/{city}/forecast så får du det de flesta appar behöver:
- Aktuella förhållanden — temperatur, vind, luftfuktighet, beskrivning, vädersymbol
- 10-dygnsprognos — daglig max/min, nederbördssannolikhet, vind, beskrivning
- Observationer — senaste uppmätta värden från närmaste SMHI-station
- Vädervarningar — aktiva SMHI-varningar för området
Exempelsvar
{
"meta": {
"request_id": "req_abc123",
"api_version": "2026-02-15",
"mode": "live",
"sources": [{
"agency": "smhi",
"fetched_at": "2026-03-12T14:30:00Z",
"cache_ttl": 600,
"freshness": "live"
}]
},
"data": {
"city": "Stockholm",
"coordinates": { "lat": 59.33, "lon": 18.07 },
"current": {
"temperature": 4.2,
"feels_like": 1.8,
"humidity": 72,
"wind_speed": 3.1,
"wind_direction": "SW",
"description": "Partly cloudy",
"symbol": 3
},
"forecast": [
{
"date": "2026-03-12",
"high": 6.1,
"low": 1.3,
"precipitation_mm": 0.0,
"description": "Partly cloudy"
}
// ... 9 dagar till
]
}
}
Tillgängliga väderendpoints
| Endpoint | Beskrivning |
|---|---|
/v1/weather/{city}/forecast | 10-dygnsprognos för valfri svensk stad |
/v1/weather/{city}/current | Aktuella förhållanden med observationer |
/v1/weather/alerts | Aktiva SMHI-vädervarningar |
/v1/weather/forecast?lat=X&lon=Y | Prognos via GPS-koordinater |
Testa nu
Du kan testa med sandbox-nyckeln direkt. Ingen registrering krävs.
curl -H "Authorization: Bearer sk_test_demo" \
https://apiverket.se/v1/weather/Stockholm/forecast
Testläge returnerar sandboxdata med samma form som live-svaren. När du vill ha riktig SMHI-data kan du registrera dig gratis och använda en sk_live_-nyckel.
Bygg med svensk väderdata
Börja i testläge. Byt till live-data när du är redo.
Öppna API-dokumentationenSe prisplaner — gratisplanen inkluderar 200 anrop/dag