# Addresses, coordinates and property

All from Kartverket via Geonorge. Open, no credentials.

## Address → coordinates and property id

```
norsk_call(id="kartverket.adresse.search", params={sok:"Storgata 1 Oslo"}, limit=5)
```

Returns for each match: the canonical address text, postcode and post town,
municipality name and number, **gnr/bnr** (the cadastral property identifier),
and WGS84 `lat`/`lon`.

Free text works well, but ambiguity is common — Norway has a *lot* of
Storgatas. Narrow with `kommunenummer` when you know the municipality:

```
norsk_call(id="kartverket.adresse.search",
           params={sok:"Storgata 1", kommunenummer:"4601"})
```

## Coordinate → address (reverse geocoding)

```
norsk_call(id="kartverket.punkt.search",
           params={lat:59.911, lon:10.75, radius:100}, limit=5)
```

Returns nearby addresses ordered by distance, with `meterDistanseTilPunkt`.
Radius is in metres, max 2000. Start small — a 2000 m radius in a city centre
returns thousands of addresses and you will just pay to truncate them.

**Coordinates are always WGS84 (lat/lon) in this layer.** Kartverket natively
serves EUREF89 UTM33 for many products; the transport requests lat/lon and the
shaper normalises, so you never handle raw UTM northing/easting. If a user
gives you UTM coordinates, say you need lat/lon.

## gnr / bnr — the property identifier

A Norwegian property (matrikkelenhet) is identified by:

```
kommunenummer - gårdsnummer / bruksnummer [/ festenummer / seksjonsnummer]
       0301   -      208      /    619
```

- **gnr** (gårdsnummer) — the historical farm number, a large area
- **bnr** (bruksnummer) — the individual plot within it
- **fnr** (festenummer) — a leasehold on that plot, when present
- **snr** (seksjonsnummer) — an apartment/section within a building, when present

gnr/bnr are **only unique within a municipality**, so always carry the
kommunenummer with them. "gnr 208 bnr 619" alone is ambiguous nationally.

## What is NOT here

This build has addresses and cadastral identifiers, **not ownership**. The open
address API does not tell you who owns a property, what it sold for, or its
tax value. That needs Kartverket's authenticated Matrikkel API, which requires
an approved application and is not connected here.

If someone asks "who owns this house", say plainly that ownership data requires
authenticated access this server does not have. Do not guess from the company
registry — a company having a registered address at a property does not mean it
owns it.

## Place names

```
norsk_call(id="kartverket.stedsnavn.search", params={sok:"Galdhøpiggen"})
```

`*` is a wildcard: `Galdh*`. Returns the object type (Fjell, Innsjø, Øy, Dal,
Gård…), the county and municipality, and a representative coordinate.

Useful for disambiguating Norwegian toponyms — many names repeat across the
country, and `navnestatus` tells you whether a spelling is the official
`hovednavn` or a secondary form.

## Chaining to companies

Address → municipality → companies is a common flow:

```
norsk_call(id="kartverket.adresse.search", params={sok:"..."})   # -> kommunenummer
norsk_call(id="brreg.underenhet.search",
           params={kommunenummer:"4601", naeringskode:"47.111"}, limit=25)
```

There is no direct "which companies are registered at this exact address"
operation. You can search companies by `postnummer` in `brreg.enhet.search` and
filter the results yourself, but be honest that it is a postcode-level match,
not an address-level one.
