Hämta svensk väderdata via API
SMHI (Sveriges meteorologiska och hydrologiska institut) erbjuder gratis väderdata via sitt öppna API. Men att arbeta med det direkt innebär att hantera koordinatbaserade uppslagningar, kryptiska parameterkoder och djupt nästlade JSON-strukturer.
Den här guiden visar hur du hämtar svensk väderdata på det enkla sättet — med ett enda API-anrop som returnerar ren, utvecklarvänlig JSON.
Problemet med SMHI:s råa API
SMHI:s meteorologiska prognos-API (opendata-download-metfcst) kräver att du:
- Känner till exakta GPS-koordinater — det finns ingen stadsnamnsökning. Du behöver konvertera "Stockholm" till
lat=59.33&lon=18.07själv. - Avkodar parameterkoder — temperatur är
t, vindhastighet ärws, nederbörd ärpmean. Det finns 30+ parametrar med icke-uppenbara namn. - Parsar nästlade tidsserier — svaret är en platt array av tidssteg, var och en med en array av parameterobjekt. Ingen sammanfattning, ingen daglig aggregering.
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
]
}
För att få "Vad är temperaturen i Stockholm?" behöver du: hitta rätt koordinater → göra anropet → loopa genom timeSeries → hitta parametern där name === "t" → extrahera values[0]. Det är mycket boilerplate för en enkel fråga.
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, ...}]
En rad istället för tjugo. Apiverket hanterar geokodning, parametermappning och svarsformatering. Du får stadsnamnsökning, läsbara beskrivningar och dagliga prognossammanfattningar direkt.
Vad du får
Endpointen /v1/weather/{city}/forecast returnerar:
- 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_demo123" \
https://apiverket.se/v1/weather/Stockholm/forecast
Testläge returnerar realistisk sandboxdata. När du är redo för riktig data, registrera dig gratis och få en sk_live_-nyckel med 200 anrop per dag.
Redo att bygga med svensk väderdata?
Kom igång på 30 sekunder. Ingen registrering krävs för testläge.
Utforska API-dokumentationenSe prisplaner — gratisplanen inkluderar 200 anrop/dag