Skip to content

ADDRESS API · OBSERVATIONS

Measurements at the address over time

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

IdWhat and from whereUnitRadiusGrains and profilesSection
trafficTraffic volume at the nearest counted sensor
sensor · Statens vegvesen (Trafikkdata) · NLOD 2.0
vehicles/h2 kmhour, day, month · hour_of_day, hour_weekday, month_of_yearnearest_traffic_sensors
temperatureAir temperature at the nearest weather station
station · Meteorologisk institutt (Frost) · NLOD 2.0 / CC BY 4.0
degC30 kmhour, day, month · hour_of_day, hour_weekday, month_of_yearweather
windWind speed and direction at the nearest weather station
station · Meteorologisk institutt (Frost) · NLOD 2.0 / CC BY 4.0
m/s · direction degrees30 kmhour, day, month · hour_of_day, hour_weekday, month_of_yearweather
precipitationPrecipitation at the nearest weather station
station · Meteorologisk institutt (Frost) · NLOD 2.0 / CC BY 4.0
mm (sum per period)30 kmhour, day, month · hour_of_day, hour_weekday, month_of_yearweather
water_levelWater level at the nearest NVE gauging station
station · NVE (HydAPI) · NLOD 2.0
m10 kmhour, day, month · hour_of_day, hour_weekday, month_of_yearnearby_water_level
air_qualityAir quality index forecast at the address
forecast · Meteorologisk institutt (Luftkvalitetsvarsel) · NLOD 2.0 / CC BY 4.0
AQIat the addresshourair_quality_forecast

Lookups and price

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.

Parameters

NameTypeBounds and defaultDescription
address_id
path · required
string^[0-9]{1,18}$—
variable
path · required
stringtraffic | temperature | wind | precipitation | water_level | air_quality—
grain
query
stringhour | day | monthDefault: the variable's native grain (hour).
from
query
string—Inclusive. Default: 7 days before to for hours, 90 days for days, 24 months for months.
to
query
string—Exclusive. Default: the end of the current hour, day or month.
profile
query
stringhour_of_day | hour_weekday | month_of_yearReturn the rollup instead of points; takes none of grain, from and to.
format
query
stringjson | csv
default json
—

string——

Responses and error codes

HTTPMeaningCodes in the body
200The series, or not_found with a reason when no station is within range. CSV is one row per point or profile cell.—
400Unknown variable, unavailable grain or profile, invalid or too large window, or an unsupported parameter
401Authentication required
402Account request allowance exhausted
403Observations endpoint or the variable's section not granted
404Address not found
429Rate limit exceeded; see Retry-After
500—
503Observation store or forecast source unavailable; nothing was counted
Example request
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.

Parameters

NameTypeBounds and defaultDescription

string——

Responses and error codes

HTTPMeaningCodes in the body
200The variables.—
Example request
curl 'https://api.approach.no/api/v1/addresses/observations/catalog'