The profile says what the nearest counted sensor or weather station measured last. Observations say what it has measured over time: hourly values, days and months, or weekday-by-hour and month-of-year profiles. Values always come from the nearest station within the variable’s radius, with its name and distance, never from a station farther away.
API version
1.19.1
Variables
6
Points per call
10,000
Contents
What you get
grain=hour, day or month with from and to. Without a window you get the last 7 days of hours, 90 days of days or 24 months of months. Days and months follow Oslo time.
profile=hour_weekday (168 cells), hour_of_day (24) or month_of_year (12) instead of points: the mean, the 10th and 90th percentiles and the number of measurements behind each cell.
Every point carries quality: measured, estimated (a partial hour or a period with gaps) or missing. An hour without a value is unknown, not zero.
Hourly values are kept for 92 days, monthly values for five years. span_available says how far back the series goes.
With no station within the radius, the API answers status: not_found with reason: no_station_within_range.
The endpoint is switched on deployment by deployment. The directory at GET /api/v1 lists observations when they are available.
Variables
Access to a variable follows the section it belongs to: a key without weather does not get temperature as a series either. https://api.approach.no/api/v1/addresses/observations/catalog
Id
What and from where
Unit
Radius
Grains and profiles
Section
traffic
Traffic volume at the nearest counted sensor sensor · Statens vegvesen (Trafikkdata) · NLOD 2.0
Observations are part of the address’s lookup. The same address on the same day (Oslo time) is one lookup, however many variables, windows and sections you read. One call returns at most 10 000 points; a larger window is refused with observation_range_too_large before anything is read or counted. For more, the series API and data products are built for bulk. Pricing
Examples
The same builder as Try the API on the account page, so what you copy here is the call you would run there.
curl --disable --fail-with-body --silent --show-error --connect-timeout 10 --max-time 30 \
-H "X-API-Key: ${APPROACH_API_KEY:?APPROACH_API_KEY is not set}" \
'https://api.approach.no/api/v1/addresses/285717643/observations/traffic'
Endpoints
https://api.approach.no/api/v1/addresses
GET
/{address_id}/observations/{variable}
Read a measured variable at the address as a time series. traffic, temperature, wind, precipitation and water_level from the nearest sensor or station within the variable's radius (traffic 2 km, weather 30 km, water level 10 km), and air_quality from MET's forecast. grain=hour|day|month with from/to, or profile=hour_of_day|hour_weekday|month_of_year for the rollup; format=json|csv. At most 10 000 points per call. Part of the address's oppslag: the same address on the same Oslo day is one oppslag whatever variables and sections are read. The variable's profile section must be granted. No station within range answers not_found with reason no_station_within_range, never a farther station.
curl --disable --fail-with-body --silent --show-error --connect-timeout 10 --max-time 30 \
-H "X-API-Key: ${APPROACH_API_KEY:?APPROACH_API_KEY is not set}" \
'https://api.approach.no/api/v1/addresses/285717643/observations/traffic?grain=day&from=2026-07-01&to=2026-10-01'
GET
/observations/catalog
no key required
List the observation variables. Each variable with its unit, the profile section that grants it, the radius, grains, profiles, how hours combine into days and months, source and licence.