All data och information på temperatur.nu kan hämtas via ett API som i detalj beskrivs nedan.
API:et returnerar data i JSON-format.
Aktuell version är 1.20 – tidigare versioner kan inte användas i nya applikationer.
Innehållsförteckning
Support
Frågor om API:et mejlar du till [email protected].
Villkor
- Belastning:
Mjukvaran ska skrivas på ett sådant sätt att API:et inte automatiskt belastas med samma fråga oftare än var femte minut från en enskild klient. Klientid som bryter mot detta villkor kan komma att blockeras. - Osignerade anrop
Osignerade förfrågningar begränsas till 15 anrop per 30 minuter, räknat både per klientid (cli) och per IP-adress. Därefter blockeras de tillfälligt. Skriver du en app för eget bruk ska den klara sig inom den gränsen. Använd din e-postadress som cli. - Signering:
Appar som publiceras för flera användare och all kommersiell användning ska signera sina anrop. En app som bara du själv använder behöver inte signeras.
Se avsnittet ”Signering” nedan för hur du signerar dina anrop. Mejla [email protected] för att få en klientnyckel till ditt projekt. - Källhänvisning:
Källhänvisning till temperatur.nu måste alltid anges. Där det är möjligt bör en klickbar länk samt temperatur.nus logotyp visas. - Kommersiell användning:
Vid kommersiell användning krävs en särskild överenskommelse. Avgiften startar från 150 kr/mån beroende på omfattning. Syftet är att avgiften ska vara så låg att kostnaden inte begränsar användandet, men tillräcklig för att bidra till driften av temperatur.nu. Mejla [email protected] för mer information.
Exempel
Så här kan resultatet från en förfrågan på https://api.temperatur.nu/tnu_1.20.php?p=ekholmen&sensor_type=all&cli=api_demo_v1.20 se ut:
{
"full_exec_time": 0.00230312347412109,
"title": "Temperatur.nu API 1.20",
"client": "unsigned",
"stations": [
{
"title": "Linköping/Ekholmen",
"id": "ekholmen",
"temp": "3.0"
}
]
}
Så här kan resultatet från en förfrågan på https://api.temperatur.nu/tnu_1.20.php?lat=58.37672&lon=15.662965&num=2&verbose&sensor_type=all&cli=test_v1.20 se ut:
{
"full_exec_time": 0.0128350257873535,
"title": "Temperatur.nu API 1.20",
"client": "unsigned",
"stations": [
{
"title": "Linköping/Ekholmen",
"id": "ekholmen",
"temp": "10.3",
"lat": "58.376725",
"lon": "15.662965",
"kommunUrl": "linkoping",
"kommun": "Linköpings kommun",
"lan": "Östergötlands län",
"lanUrl": "ostergotland",
"lastUpdate": "2026-04-08 15:30:38",
"sourceInfo": "Temperaturdata från Erik Freiholtz. :)",
"forutsattning": "Temperaturen mäts i öster och väster och den kallaste temperaturen används.",
"uptime": 100,
"fetchInterval": 180,
"active": 1,
"felmeddelande": "Ok",
"start": "2007-01-29 17:02:27",
"moh": 65,
"sensorType": "air",
"url": "https://www.temperatur.nu/ekholmen",
"dist": "0"
},
{
"title": "Stångån/Johannelundsbadet",
"id": "stangan-johannelundsbadet",
"temp": "5.7",
"lat": "58.398381",
"lon": "15.662705",
"kommunUrl": "linkoping",
"kommun": "Linköpings kommun",
"lan": "Östergötlands län",
"lanUrl": "ostergotland",
"lastUpdate": "2026-04-08 15:08:57",
"sourceInfo": "",
"forutsattning": "Vattentemperaturen mäts av Linköpings kommun med sensorer vid badplatser. Data hämtas från kommunens WaterQualityObserved-API och uppdateras var 30:e minut. Källa: Linköpings kommun, öppna data.",
"uptime": 100,
"fetchInterval": 1800,
"active": 1,
"felmeddelande": "Ok",
"start": "2026-03-25 15:29:10",
"moh": -100000,
"sensorType": "water",
"url": "https://www.temperatur.nu/stangan-johannelundsbadet",
"dist": "2.4"
}
]
}
Parametrar
Generella parametrar
| Parameter | Beskrivning | Kan ej användas med |
|---|---|---|
| p | Anger för vilka orter data ska returneras, som kommaseparerad lista. Utelämnas parametern returneras samtliga mätpunkter. | lat, lon |
| sensor_type | Anger vilken sensortyp som ska hämtas, giltiga är air, water eller all. Standard är air. | |
| kommun_url | Filtrerar svar på kommun. ex &kommun_url=linkoping – alla stationer i Linköpings kommun. URL-format: gemener, å→a, ä→a, ö→o, mellanslag→bindestreck | |
| lan_url | Filtrerar svaret på län. ex &lan_url=ostergotland. Samma URL-format som för kommun. | |
| dc | Anger att decimalkomma ska användas i stället för decimalpunkt i fälten temperatur, lat, lon och dist. | |
| verbose | Returnerar alla fält för orten, se beskrivning nedan | |
| coordinates | Visar koordinaterna för valda orter. Kan användas för att kunna positionera orter på en karta utan att behöva hämta alla fält via verbose. | verbose |
| lat | Används tillsammans med lon och ev num. Det spelar ingen roll om decimalpunkt eller decimalkomma används. När dessa parametrar används returneras de num närmaste orterna, närmaste orten först. Bara mätpunkter som rapporterar normalt just nu tas med. | p |
| lon | Används tillsammans med lat och ev num. Det spelar ingen roll om decimalpunkt eller decimalkomma används. När dessa parametrar används returneras de num närmaste orterna, närmaste orten först. Bara mätpunkter som rapporterar normalt just nu tas med. | p |
| nearby | Lägger till fältet nearby med de num närmaste mätpunkterna runt mätpunkten i p. Används med exakt en mätpunkt i p. Både luft- och vattenmätpunkter tas med, oavsett sensor_type. Bara mätpunkter som rapporterar normalt just nu tas med. Standard är 3 och max är 50. | lat, lon |
| num | Anger hur många mätpunkter som returneras. Med lat/lon är standard 1. Med nearby är standard 3 och max 50. Med amm är standard 2 och max 20. I övriga listor begränsar num antalet mätpunkter. | |
| cb | Om denna parameter anges kommer ett randomiserat värde att läggas till i slutet av graf-URL:erna. Denna parameter kan användas för att se till att inte grafen cachas lokalt hos användaren eller i någon dåligt konfigurerad proxy mellan temperatur.nu och användaren. | |
| search | Fritextsök – söker på både ort och kommun. | p, lat, lon |
| smhi | smhi=0 tar bort SMHI:s väderstationer ur resultatet vid search, kommun_url och lan_url. Utelämnad tas de med. | |
| sort | Sorteringsordning vid search, kommun_url och lan_url. Giltiga val är temperatur, latitud, kommun, historik (datum då mätpunkten startade) eller alfabetiskt (standard). | |
| by | Giltiga val är rising som anger stigande ordning på sortering eller falling som är fallande (standard) | |
| cli | Används för att identifiera vilken klient som hämtar data. Ex ”cli=tnu_widget”. Parametern är obligatorisk. | |
| sign | Signatur för URL:en. Krävs för appar som publiceras för flera användare och för kommersiell användning, se Signering av URL:er nedan. Ska alltid vara sista parametern. |
Parametrar som är relaterade till att ange tider
| Parameter | Beskrivning | Kan ej användas med |
|---|---|---|
| span | Specificerar för vilket tidsperspektiv data ska hämtas. Giltiga värden är: 1day (standard), 1week, 1month, 1year. | start, end |
| shift | Anger att äldre data ska visas. Exempel: om span är 1month och shift är 1 hämtas data för föregående månad. Standard är 0. Kan användas med daily, graph, data, tnudata mfl | start, end |
| start | Specificerar starttid. Formatet är Y-m-d-H-i, ex 2011-01-30-12-31. Alternativt kan unix timestamp anges. | span |
| end | Specificerar sluttid. Formatet är Y-m-d-H-i, ex 2011-01-30-12-31. Alternativt kan unix timestamp anges. Standard är nuvarande tid | span |
| history | Används för att i graf eller tnudata lägga in historik. Giltiga värden är: y (föregående span), 1year (föregående år) eller ett årtal med fyra siffror, ex 2017. |
Parametrar som är relaterade till att hämta statistik
| Parameter | Beskrivning |
|---|---|
| data | Används för att hämta rådata för en mätpunkt specificerad med variabeln p. Upplösningen är densamma som i mätpunktens lagring, men 1 timme när tidsspannet är längre än 7 dagar eller ligger mer än 30 dagar bakåt i tiden. |
| textfil | Används för att hämta länk till textfil med rådata för en mätpunkt specificerade med variabeln p. Ange variabel graddagar, dygnsmedel eller timmedel (ex textfil=graddagar) för att specificera vilket format textfilen ska ha. Utelämnat eller okänt värde ger timmedel. Filen skapas i bakgrunden, så länken kan ge 404 några sekunder innan den är klar. |
| amm | Används för att hämta medel, min och max (med tidpunkt) för upp till 20 orter specificerade med variabeln p. Standard är 2, ange fler med num. |
| daily | Används för att hämta dygnsmedel samt lägsta och högsta temperatur per dygn. En mätpunkt specificerad med variabeln p. |
| tnudata | Används för att skapa data för grafgenerering på temperatur.nu. Används med p och history. Om flera p anges läggs data in parallellt och vid history hämtas relevant historik enligt specifikation för variabeln history. |
Parametrar relaterade till grafgenerering
| Parameter | Beskrivning |
|---|---|
| graph | Används för att generera en graf för upp till 5 orter specificerade med variabeln p. Anges parametern compare kommer orterna att läggas in i samma graf i stället för separata. |
| verbose_g | Visar min/max/medel/senaste värde i grafen. Visar även när data senast hämtades för den valda orten. |
| 1axis | Används för att endast visa temperaturskalan till vänster. Används med fördel i små grafer för att spara utrymme. |
| fontsize | Anger hur stor texten ska vara. Observera att värdet inte kan relateras till vanliga textstorlekar, du måste därför testa dig fram. |
| linewidth | Anger bredden på graflinjen. Giltiga värden 1 till 5. Även flyttal, ex 1.5, fungerar. Decimalkomma eller decimalpunkt spelar inte någon roll. |
| x | Specificerar hur bred grafen ska vara. Giltiga värden är 150-2500. 300 är standard. |
| y | Specificerar hur hög grafen ska vara. Giltiga värden är 125-2500. 200 är standard. |
| color | Anger vilken/vilka färger linjer i grafen ska ha, kommaseparerad lista. Standard är #FF0000,#AADDAA,#FFCC00. |
| compare | Anger att orter som skickats med p ska läggas in för jämförelse i samma graf. Om fler än tre orter anges måste även color definieras |
Beskrivning av returnerade fält
| Fält | Beskrivning | Parameter som visar |
|---|---|---|
| title | Mätpunktens namn på temperatur.nu | visas som standard |
| id | Mätpunktens id på temperatur.nu. Kan användas med parametern ”p” för att hämta endast denna mätpunkts information | visas som standard |
| sensorType | Typ av sensor, air eller water. | verbose |
| temp | Mätpunktens senaste temperatur. Om decimalkomma eller decimalpunkt ska användas styrs med parametern dc. Är värdet för gammalt returneras ”N/A”: för luft efter 30 minuter, för vatten efter 2 timmar eller två mätintervall (fetchInterval) om det är längre. | visas som standard |
| client | Returnerar signed, unsigned eller blocked beroende på signeringsstatus | visas som standard |
| lat | Mätpunktens latitud i decimalt format. Om decimalkomma eller decimalpunkt ska användas styrs med parametern dc. | coordinates, verbose |
| lon | Mätpunktens longitud i decimalt format. Om decimalkomma eller decimalpunkt ska användas styrs med parametern dc. | coordinates, verbose |
| lastUpdate | Tidpunkt då informationen senast uppdaterades på temperatur.nu. | verbose |
| kommun, kommunUrl | Den kommun som mätpunkten ligger i, som namn och i URL-format (samma format som parametern kommun_url). | verbose, search, kommun_url, lan_url |
| lan, lanUrl | Det län som mätpunkten ligger i, som namn och i URL-format (samma format som parametern lan_url). | verbose, search, kommun_url, lan_url |
| felmeddelande | ”Ok” när temperaturen är aktuell. När temp är ”N/A” anges orsaken här. | verbose |
| sourceInfo | En kort textsträng med information om vem som loggar temperaturen för mätpunkten. | verbose |
| forutsattning | Textsträng med information om hur mätningarna sker – finns ej för alla mätpunkter och returnerar i så fall ett tomt fält. | verbose |
| url | URL till mätpunkten på www.temperatur.nu. | verbose |
| sourceUrl, homepageUrl | Länk till mätpunktens datakälla (sourceUrl) eller till ägarens egen webbsida (homepageUrl). Fälten finns bara när mätpunkten har en sådan länk. | verbose |
| photoCount | Antal godkända monteringsbilder för mätpunkten (0 om bilder saknas). Finns för alla mätpunkter i listningen, så att man kan se vilka som har bilder utan att slå upp dem en och en. | verbose |
| photos | Monteringsbilder för mätpunkten, högst 4. Varje bild har fälten url (stor bild), thumb (miniatyr) och description. Finns bara när mätpunkten har godkända bilder och när exakt en mätpunkt anges i p. Använd photoCount för att se vilka mätpunkter som har bilder. | verbose |
| dist | Hur långt från de givna koordinaterna mätpunkten ligger. Enheten är kilometer. Om decimalkomma eller decimalpunkt ska användas styrs med parametern dc. | lat & lon |
| graph | Visar URL till grafen för orten. Observera att ny graf endast genereras när parametern graph används. Det går därför inte att cacha URL:en lokalt i klienten. | graph |
| daily | Lista med ett objekt per dygn, med fälten date, average, min och max. Har dygnet för lite data blir värdena ”Nan”. | daily |
| amm | Objekt med fälten ammRange (tidsperioden), average, min, minTime, max och maxTime. Med history och en mätpunkt kommer även amm-history med samma fält för jämförelseperioden. | amm |
| uptime | Mätpunktens upptid i % det senaste året | verbose |
| start | Tidpunkt när mätpunkten lades till på temperatur.nu. | verbose |
| moh | Mätpunktens höjd över havet i meter. | verbose |
| data | Temperaturdata i råformat. Lista med objekt med fälten datetime och temperatur. Saknat värde returneras som ”NaN”. | data |
| textfil | Länk till fil med rådata i textformat. | textfil |
| search | Objekt med numstations (antal träffar), numtotal (antal mätpunkter totalt) och average (medeltemperatur för träffarna). Med sensor_type=all finns även averageAir och averageWater, och med kommun_url eller lan_url finns regionName. | search, kommun_url, lan_url |
| nearby | Lista med närliggande mätpunkter, var och en med title, id, dist, temp, sensorType, lat och lon. | nearby |
Vilka mätpunkter som returneras
- Listor (utan p, eller med search, kommun_url eller lan_url) innehåller bara aktiva mätpunkter som inte är dolda. En dold mätpunkt kan fortfarande hämtas direkt med p.
- Vid sökning med lat/lon och vid nearby tas bara mätpunkter med som rapporterar normalt just nu.
- Mätpunkter vars ägare har valt att inte dela data externt returneras inte.
Felsvar
| Situation | Svar |
|---|---|
| cli saknas | {”error”: ”Client access forbidden or no client provided”} |
| För många osignerade anrop | {”client”: ”blocked”, ”error”: ”Too many unsigned requests”} |
| Klienten är spärrad | {”error”: ”This client has been blocked”} |
Signering av URL:er
Signering av API-anrop
Appar som publiceras för flera användare och all kommersiell användning ska signera sina anrop. Mejla mig på [email protected] för att få en klientnyckel (cli och cli_key). Skriver du en app som bara du själv använder behöver du inte signera, men den måste klara sig på 15 anrop per 30 minuter.
Så fungerar det:
- Bygg din URL utan &sign=-parametern:
api.temperatur.nu/tnu_1.20.php?p=stockholm&verbose&cli=din_klient - Beräkna en hash av URL:en sammansatt med din hemliga nyckel, separerade med +: md5(”api.temperatur.nu/tnu_1.20.php?p=stockholm&verbose&cli=din_klient+DIN_HEMLIGA_NYCKEL”)
- Lägg till hashen som &sign=-parameter: https://api.temperatur.nu/tnu_1.20.php?p=stockholm&verbose&cli=din_klient&sign=a1b2c3d4e5…
Exempel i PHP:
$cli_key = "din_hemliga_nyckel";
$url = "api.temperatur.nu/tnu_1.20.php?p=stockholm&verbose&cli=din_klient";
$sign = md5($url . "+" . $cli_key);
$signed_url = "https://" . $url . "&sign=" . $sign; $data = json_decode(file_get_contents($signed_url), true);
Exempel i Python:
import hashlib, urllib.request, json
cli_key = "din_hemliga_nyckel"
url = "api.temperatur.nu/tnu_1.20.php?p=stockholm&verbose&cli=din_klient"
sign = hashlib.md5((url + "+" + cli_key).encode()).hexdigest()
signed_url = f"https://{url}&sign={sign}"
data = json.loads(urllib.request.urlopen(signed_url).read())
Viktigt:
- sign måste alltid vara den sista parametern i URL:en
- Varje unik URL ger en unik signatur – ändrar du parametrar måste du signera om
- Osignerade anrop begränsas till 15 per 30 minuter, per klientid och per IP-adress
Ändringslogg
2026-10-20 – Tillägg i version 1.20: fältet photoCount (antal monteringsbilder) i verbose-listningar.
2026-11-02 – Tillägg i version 1.20: start och end kan anges från 1840, eftersom SMHI:s väderstationer har mätserier från 1849. Spann över fem år ger ett värde per dygn. Parametern smhi=0 tar bort SMHI:s väderstationer ur sökresultat och listor.
2026-10-19 – Tillägg i version 1.20: fältet photos (monteringsbilder), sourceUrl och homepageUrl, regionName, averageAir och averageWater i sökresultat samt sorteringen kommun och historik.
2026-04-08 – Version 1.20. Stöd för sensor_type och utökad information kring kommun och län.
2026-02-28 – Version 1.19 (1.18 har endast använts internt). Parametern nearby är tillagd. Signering krävs för appar som publiceras för flera användare och för kommersiell användning.
2021-06-01 – Version 1.17 Parametern json borttagen; data returneras bara i JSON-format.
2021-02-25 – Version 1.16 Parametern json för att få ut data i json-format. Parametern data som används för att få ut data i råformat. Parametern textfil som används för att få ut rådata i en textfil. Mer information returneras när parametern verbose används. Generell buggrättning
2014-01-26 – Version 1.15 Parametern daily. Används för att hämta dygnsmedel i ett specificerat tidsspann.
2013 – Version 1.14 Parametern history kan anges med ett årtal för att jämföra data med tidigare år. Buggfixar
2012-05-04 – Version 1.13 Variablerna compare och color angivna, gör det möjligt att jämföra flera orter i samma graf samt helt styra vilka färger linjerna i graferna ska ha. color kan sättas även för vanliga grafer.
2011-10-08 – Version 1.12 Variabeln history tillagd. Visar föregående periods temperatur i grafer.
2011-01-30 – Version 1.11 Mer flexibel specificering av tidsperspektiv för grafer. amm – möjlighet att hämta medel/min/max i ett valfritt tidsperspektiv, antalet osignerade anrop begränsat i denna version.
2011-01-17 – Version 1.10 Möjlighet att via API:et hantera information gällande den senaste tillgängliga klientversionen.
2011-01-13 – Version 1.9 Signering införd. Planen var att signering skulle krävas för alla tillämpningar från mitten av 2011 och läggas in successivt i alla versioner av API:et.
2010-12-19 – Version 1.8 CacheBust-funktion, möjlighet att ändra textstorlek samt information om vem som loggar temperaturen när verbose anges.
2010-11-22 – Version 1.7 Möjlighet att välja hur tjock graflinjen ska vara.
2010-09-01 – Version 1.6 Parameter för att ange om 1 eller 2 y-axlar ska visas.
2010-09-01 – Version 1.5 Parametrar för att visa mer information i grafen. Parametrar för att visa grafer för i går, förra veckan, 2 år sedan etc.
2010-08-04 – Version 1.4 Värden för x och y justerade. Parametern cli krävs för att API:et ska returnera data.
2010-06-09 – Version 1.3 Rättar en bugg från 1.2 (det gick inte att hämta alla orter genom att utelämna parametern p).
2010-05-19 – Version 1.2 Stöd för att hämta grafer
2010-05-13 – Version 1.1 Variabeln cli tillagd.
2010-05-04 – Version 1.0 Första releasen.

