Nearby traffic sensors and observations
Available with: trial key (open fields) · bought bundle or agreed plan (all fields) · Pricing
What this does not say
Quoted verbatim from the section’s warnings field, exactly as the API returns it. They are not translated: a translation would show something other than what your response actually contains.
- Sensors within 5 km by straight line from the address point. Proximity is geometric and does not establish that the sensor measures a road serving this address — the nearest sensor may be on a motorway the address cannot reach.
- updated_at is import time, not the measurement interval, and this is not a live congestion feed. An empty section means no sensor within 5 km, which is the usual case away from main roads and says nothing about traffic there.
- Routes follow the car profile, from the address to the feature; ranking remains straight-line. Static modelled travel time excludes live traffic and emergency response. Road snapping is limited to 250 m at each end. Ferries may be included without timetable/wait guarantees. Graph source date is unverified unless supplied. © OpenStreetMap contributors, ODbL: https://www.openstreetmap.org/copyright
- walk_route and cycle_route follow OSRM's foot and bicycle profiles on the same OpenStreetMap data: paths and stairs allowed on foot, road rules for bicycles; modelled times at profile default speeds, not measured.
Fields
8 of 20 fields are value fields — the ones that decide whether a record actually says anything. The rest are context: identifiers, codes and timestamps. Fields marked “open” return values to anonymous callers; the rest require a key.
| Field | Type | Role | Demo |
|---|---|---|---|
| sensor_id | string | null | context | open |
| road | string | null | context | open |
| road_category | string | null | context | open |
| municipality_code | string | null | context | open |
| county_code | string | null | context | open |
| lat | number | null | context | open |
| lon | number | null | context | open |
| vehicles_per_hour | integer | null | value | open |
| heavy_vehicle_pct | number | null (%) | value | open |
| coverage_pct | number | null (%) | value | open |
| avg_daily_volume | integer | null | value | open |
| avg_daily_heavy | integer | null | value | open |
| peak_hour | integer | null | context | open |
| peak_hour_volume | integer | null | value | open |
| road_speed_limit | integer | null | value | open |
| straight_line_distance_m | integer | null (m) | value | open |
| updated_at | string | null | context | open |
| route | object | context | open |
| walk_route | object | context | open |
| cycle_route | object | context | open |
Fetch this section
Send the key in the X-API-Key header. The section can be fetched with the rest of the address, or on its own with pagination.
curl --fail-with-body --silent --show-error \ -H "X-API-Key: $APPROACH_API_KEY" \ 'https://api.approach.no/api/v1/addresses/285717643?include=traffic' # paginated, one section at a time curl --fail-with-body --silent --show-error \ -H "X-API-Key: $APPROACH_API_KEY" \ 'https://api.approach.no/api/v1/addresses/285717643/sections/traffic?limit=25'
Try it now
This is a real call against the public demo, from here. What appears below is what the API returned — not a sample.