Hopp til innhold
↑ ↓ navigerEnter åpneEsc lukk

Adresse i praksis

Autofullfør i skjemaer, validering ved lagring, geokoding for ruter og kart, eiendomsinformasjon og massevask av registre.

Adresse gjør at adresser i systemet ditt alltid er offisielle, komplette og riktige.

Autofullfør i nettleseren

Bruk en offentlig nøkkel (pk_live_…) direkte fra nettleseren. Offentlige nøkler kan bare kalle GET /v1/adresser og er låst til domenene du registrerer.

const inp = document.querySelector('#adresse');
let timer;
inp.addEventListener('input', () => {
  clearTimeout(timer);
  timer = setTimeout(async () => {
    const r = await fetch(`https://api.spireapi.com/v1/adresser?sok=${encodeURIComponent(inp.value)}&antall=6`, {
      headers: { Authorization: 'Bearer pk_live_…' },
    });
    visForslag((await r.json()).data);
  }, 150);
});

Hvert kall teller 0,2 mot kvoten. Med 150 ms ventetid bruker en typisk adresse 4–6 kall, altså omtrent ett helt kall per utfylt adresse.

Tips: send naer=lat,lon hvis du vet omtrent hvor brukeren er (fra tidligere adresse eller nettleserposisjon med samtykke). Da kommer «Storgata 5» i riktig by først.

Lagre ID-en, ikke teksten

Når brukeren velger et forslag, lagre id sammen med teksten. ID-en er stabil, og du kan senere hente adressen på nytt, sjekke om den er endret, eller abonnere på adresse.endret.

{ "adresse_id": "adr_2000_storgata_5", "adresse_tekst": "Storgata 5, 2000 Lillestrøm", "bruksenhet": "H0201" }

Bruksenhet (H0101, U0201 osv.) er nødvendig for leiligheter. Autofullfør gir forslag med bruksenheter når adressen har flere, hvis du sender bruksenheter=1.

Validering ved lagring

Adresser som kommer fra import, CRM eller fritekst bør valideres før de lagres:

v = spire.adresser.valider(tekst="Storgt 5 H0201, 2000 Lillestrøm")
if v.gyldig and v.treff >= 0.9:
    lagre(v.adresse)
else:
    vis_forslag(v.forslag)  # la brukeren velge

treff er 0–1. Over 0,9 er entydig. Mellom 0,6 og 0,9 har vi funnet noe, men det kan være flere kandidater; forslag lister dem. Under 0,6 fant vi ikke adressen.

Strukturert inndata gir bedre treff enn fritekst når du har feltene:

{ "gate": "Storgata", "nummer": "5", "bruksenhet": "H0201", "postnummer": "2000" }

Geokoding

Hver adresse har koordinat (WGS84, og EUREF89 UTM 33 med koordinatsystem=utm33). For ruteplanlegging:

adr, _ := client.Adresser.Hent(ctx, "adr_2000_storgata_5")
fmt.Println(adr.Koordinat.Lat, adr.Koordinat.Lon)

Motsatt vei, fra posisjon til adresse, bruker GET /v1/geokoding?lat=&lon=. Nyttig for «hvor er jeg»-funksjoner og for å finne nærmeste adresse til et GPS-punkt fra en bil.

Adresser i et område

POST /v1/adresser/innenfor tar et GeoJSON-polygon og returnerer alle adresser innenfor, med bruksenheter. Brukes til innbyggervarsling, markedsanalyse og ruteområder. Polygonet kan ha opptil 500 punkter, og svaret strømmes som NDJSON hvis det er over 1 000 adresser.

Eiendom

Fra en adresse kan du gå til eiendommen:

a = spire.adresser.hent("adr_2000_storgata_5")
e = spire.eiendommer.hent(a.matrikkel)  # "3205-81/140"
print(e.gnr, e.bnr, e.areal_m2, [b.type for b in e.bygninger])

Hjemmelshaver (eier) vises bare for kontoer med godkjent formål (eiendomsmegling, bank, offentlig). Søk om tilgang i dashbordet.

Postnummer

GET /v1/postnummer/{nr} gir poststed, kommune, fylke og kategori (gateadresse, postboks, servicepostnummer). GET /v1/postnummer?kommune=3205 lister alle i en kommune. Ved kommunesammenslåinger beholdes gamle numre med erstattet_av.

Massevask

Last opp CSV med adresser i dashbordet eller via POST /v1/adresser/vask, og få tilbake en fil med normalisert adresse, ID, koordinat og treffsikkerhet per rad. 100 000 rader tar omtrent 10 minutter. Teller som ett kall per rad.

Vanlige feil

  • Gatenavn med skrivefeil gir lav treff: søk med sok= i stedet for valider; søket er mer tolerant.
  • Adressen finnes, men ikke i Spire: nye adresser kommer inn daglig. Er den eldre enn en uke, si fra.
  • To adresser med samme tekst: forskjellig bruksenhet eller forskjellig postnummer (2000 vs 2004). Vis begge for brukeren.
Sist oppdatert 5. august 2026 Fant du en feil? Si fra, så retter vi innen en virkedag.