MET Norway Locationforecast API
Free Norwegian Meteorological Institute weather API with no key: hourly global forecasts with temperature, wind, pressure and precipitation. Tested example.
Endpoint tested and returned HTTP 200 on 2026-08-20
What is the MET Norway Locationforecast API?
The MET Norway Locationforecast API is a free, key-free weather API from the Norwegian Meteorological Institute, providing detailed hourly global forecasts including temperature, wind, air pressure, humidity and precipitation.
This is the API behind Yr.no, one of the most respected weather services in Europe, run by a national meteorological institute rather than a commercial provider. It is free for any use including commercial, which is unusual for data of this quality.
One condition is strictly enforced: you must send a User-Agent identifying your application with a contact address. Requests with a generic or missing User-Agent are refused outright, and MET will block abusers. Honour the `Expires` header too — re-requesting before it lapses is considered abuse.
Quick facts
- Base URL
https://api.met.no/weatherapi/locationforecast/2.0- Authentication
- No API key, but a descriptive User-Agent with contact details is mandatory and enforced.
- Rate limit
- 20 requests per second, and you must respect the Expires header rather than polling.
- Pricing
- Free for all use including commercial, under a CC BY 4.0 licence with attribution.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the MET Norway Locationforecast API
Every request below was executed against the live API on 2026-08-20, and the response shown is the real body it returned — not an illustration.
1. Fetch a compact weather forecast
GET https://api.met.no/weatherapi/locationforecast/2.0/compact?lat=60.10&lon=9.58
curl 'https://api.met.no/weatherapi/locationforecast/2.0/compact?lat=60.10&lon=9.58'const res = await fetch("https://api.met.no/weatherapi/locationforecast/2.0/compact?lat=60.10&lon=9.58");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://api.met.no/weatherapi/locationforecast/2.0/compact?lat=60.10&lon=9.58", timeout=20)
res.raise_for_status()
print(res.json()){
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
9.58,
60.1,
496
]
},
"properties": {
"meta": {
"updated_at": "2026-08-19T20:28:20Z",
"units": {
"air_pressure_at_sea_level": "hPa",
"air_temperature": "celsius",
"cloud_area_fraction": "%",
"precipitation_amount": "mm",
"relative_humidity": "%",
"wind_from_direction": "degrees",
"wind_speed": "m/s"
}
},
"timeseries": [
{
"time": "2026-08-19T21:00:00Z",
"data": {
"instant": {
"details": {
"air_pressure_at_sea_level": 998.6,
"air_temperature": 10.0,
"cloud_area_fraction": 39.8,
"relative_humidity": 95.8,
"wind_from_direction": 67.0,
"wind_speed": 0.8
}
},
"next_12_hours": {
"summary": {
"symbol_code": "partlycloudy_day"
},
"details": {}
},
"next_1_hours": {
"summary": {
"symbol_code": "partlycloudy_night"
},
"details": {
"precipitation_amount": 0.0
}
},
"next_6_hours": {
"summary": {
"symbol_code": "partlycloudy_night"
},
"details": {
"precipitation_amount": 0.0
}
}
}
},
{
"time": "2026-08-19T22:00:00Z",
"data": {
"instant": {Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
lat / lon | float | Required | Coordinates, limited to 4 decimal places. 60.10 |
altitude | integer | Optional | Altitude in metres, improves accuracy. 70 |
User-Agent | header | Required | Your app name and contact address. Mandatory. MyApp/1.0 you@example.com |
compact / complete | path | Optional | compact for essential values, complete for every parameter. compact |
Response fields
properties.timeseriesarray- Hourly forecast entries, each with a time and data block.
...data.instant.details.air_temperaturenumber- Temperature in Celsius at that moment.
...data.instant.details.wind_speednumber- Wind speed in metres per second.
...data.next_1_hours.summary.symbol_codestring- Weather symbol code such as `rain` or `partlycloudy_day`.
...data.next_1_hours.details.precipitation_amountnumber- Expected precipitation in millimetres.
properties.meta.unitsobject- Unit for every returned parameter — read it rather than assuming.
What you can build with the MET Norway Locationforecast API
- Build a weather app with institution-grade forecast data
- Show hourly forecasts for any global location
- Drive automation from precipitation and wind thresholds
- Use a licensed, attributable source for commercial weather features
Common errors and how to fix them
403
Missing or generic User-Agent.
Fix: Send a User-Agent naming your app and a contact email. MET enforces this and will block repeat offenders.
203
Deprecation warning — the API version is being retired.
Fix: Treat a 203 as a signal to migrate; the response still works but will not forever.
429
Polling faster than the Expires header allows.
Fix: Cache until Expires lapses; re-requesting sooner is treated as abuse.
MET Norway Locationforecast API — frequently asked questions
Is the MET Norway weather API free?
Yes, free for all use including commercial, under CC BY 4.0 with attribution. It is run by the Norwegian Meteorological Institute.
Why am I getting 403 errors?
Your User-Agent is missing or generic. MET requires one naming your application with a contact address, and enforces it strictly.
How often can I request a forecast?
Respect the `Expires` response header — usually around 30 minutes. Polling more frequently than that is considered abuse and can get you blocked.
How does it compare with Open-Meteo?
Both are free and high quality. Open-Meteo needs no User-Agent and has a simpler parameter model; MET Norway comes directly from a national met institute and is the source behind Yr.no.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
Unit Converter
Convert between units of length, weight, temperature, area, volume, speed, time and data storage instantly, with a swap button and common conversion tables.
MET Norway Locationforecast is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-20; always check the official documentation before relying on this API in production, as terms and limits can change.