Modelled sun hours on the plot
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.
- Estimate, not measured sunshine: clear-sky geometric hours above the terrain and surface horizon at the address point; vegetation and future buildings are as captured in the surface model, and weather is not modelled.
- Sensitive to where the point stands: the observer is 1.6 m above the surface model at the address point, which can be a roof, and a 10° sector is decided by single 4 m cells. Moving the point 2.2 m changed the 21 June hours by 2.4 h on average over 30 addresses (6 Oct 2026); read the figure as the character of the plot, not to the hour.
- Computed nightly in rotation through the kommuner (method horizon-36az-noaa-v2 from 6 Oct 2026; a national pass takes about four nights). An address without a row is not_found with reason not_yet_computed: unknown, not no sun. method horizon-36az-noaa-v1 rows are older per-address windows and are rescored in turn.
- Straight-line EPSG:25833 distances from the address point to the feature; not travel distance. Source features are imported as published, with their own accuracy and update cadence; updated_at is our import time.
Fields
3 of 11 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 |
|---|---|---|---|
| feature_id | string | null | context | open |
| label | string | null | context | open |
| municipality_code | string | null | context | open |
| updated_at | string | null | context | open |
| sun_hours_jun21 | number | null | value | open |
| sun_hours_mar21 | number | null | value | open |
| sun_hours_dec21 | number | null | value | open |
| method | string | null | context | open |
| near_grid | string | null | context | open |
| far_grid | string | null | context | open |
| horizon_profile_deg | array<number> | null | 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=sun_hours' # 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/sun_hours?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.