Datavask-API til danske adresser
Grundfast vasker beskidte, fritekst-skrevne adressestrenge op mod DAR og giver dig rangerede kandidater med A/B/C-konfidensbånd. Det er en DAWA-kompatibel datavask — kør adressevask på en hel kundeliste — men de fleste vaskede kandidater bærer allerede bfe_nummer, så du får databerigelse med det samme og kan gå direkte videre til ejendommen. Data fra Datafordeler / SDFI (CC BY 4.0); vasken er live nu og kræver en gf_live_-nøgle.
GET /v1/datavask/adgangsadresserPrøv vasken live
Skriv en beskidt adresse og se den vasket op mod DAR — nøglefrit. Demoen slår op i det nøglefrie prøve-udsnit; kategori (A/B/C) og lighed lægger den fulde /v1/datavask oven på.
Tryk Vask adresse for at se den rensede kandidat med BFE og lighed-score.
Nøglefri demo: /v1/demo/adresse-search returnerer et fast DAR-udsnit, som rangeres lokalt mod din streng. Den rigtige vask — /v1/datavask/adgangsadresser — matcher fuzzy mod hele DAR og lægger DAWA-kategorien (A/B/C) og en lighed-score oven på de samme kandidater. Hver kandidat bærer allerede bfe_nummer.
Datavask af kundelister
Datavask af kundelister er kerne-brugsscenariet. CRM-, ERP- og forsikringssystemer samler år efter år adresser, der er tastet i hånden — med stavefejl, forkortelser, manglende postnr og sammenskrevne ord. Grundfast vasker hver streng op mod DAR og giver dig et rangeret, autoritativt match, så du kan deduplikere, rette og berige listen i stedet for at gætte.
Adressevask mod DAR
Adressevask er datavask specifikt på adressefeltet. Du sender en fritekst-streng til GET /v1/datavask/adgangsadresser?betegnelse=…, og vasken matcher den mod Danmarks Adresseregister med trigram-lighed. Svaret bærer et A/B/C-konfidensbånd og en lighed-score pr. kandidat, så du selv bestemmer, hvornår et match er sikkert nok til at skrive tilbage.
Datavask og databerigelse i ét kald
Vasken stopper ikke ved en ren adresse. Fordi de vaskede kandidater bærer bfe_nummer, koordinat og kommunekode, får du databerigelsen med i samme svar — nøglerne til ejendommens BBR-, Matrikel- og CVR-data uden et ekstra opslag. Se databerigelse for købersiden, eller kombinér med CVR-API’et, når kundelisten er virksomheder.
Kald datavask i din stack
Samme kald i cURL, den typede TS-SDK og ren Python — én beskidt streng ind via GET /v1/datavask/adgangsadresser, og det rangerede svar nedenfor:
curl -H "Authorization: Bearer gf_live_…" \ "https://api.grundfast.dk/v1/datavask/adgangsadresser?betegnelse=vejlebyv%2017%20vodskov"
# Datavask, Bearer gf_live_…: GET /v1/datavask/adgangsadresser?betegnelse=vejlebyv%2017%20vodskov → 200 { kategori: "A", antal: 1, resultater: [ { betegnelse: "Vejlebyvej 17, 9310 Vodskov", adgangsadresse_id: "0a3f50a1-…-0003ba29abcd", bfe_nummer: 100450231, vejnavn: "Vejlebyvej", husnr: "17", postnr: "9310", postnrnavn: "Vodskov", kommunekode: "0851", koordinat: { lon: 10.182, lat: 57.112 }, lighed: 0.97 } ], meta: { kilde: "DAR via Grundfast", grundfast_version: "0.1.0" } }
kategori er DAWA-konfidensbåndet (A = sikkert, B = sandsynligt, C = usikkert), og lighed er trigram-lighed 0..1. Bemærk: et C med antal: 0 betyder, at ingen kandidat kom over lighedsgrænsen — altså intet match. Forgren derfor på antal > 0, ikke på kategori alene.
Felter i svaret
Vasken tager én parameter og returnerer et rangeret kandidat-svar:
| Parameter | Type | Beskrivelse |
|---|---|---|
| betegnelse | string | Påkrævet. Den beskidte adressestreng, der skal vaskes (fritekst; tastefejl, forkortelser og manglende postnr er OK). |
| Felt | Type | Beskrivelse |
|---|---|---|
| kategori | string | DAWA-konfidensbånd: A = sikkert enkeltmatch, B = sandsynligt, C = vasket men usikkert. |
| antal | number | Antal kandidater over lighedsgrænsen. Forgren på antal > 0, ikke på kategori alene. |
| resultater[] | object[] | Rangerede kandidater, bedste match først (resultater[0]). |
| resultater[].adgangsadresse_id | string | DAR-adgangsadressens UUID — stabil nøgle til adressen. |
| resultater[].betegnelse | string | Den opvaskede, gensammensatte adresse (vej, husnr, postnr, by). |
| resultater[].bfe_nummer | number | null | Ejendommens BFE-nummer — bro til BBR og Matriklen. null indtil jordstykket er stemplet. |
| resultater[].koordinat | { lon, lat } | Adressepunktet i WGS84 — klar til kort og afstandsberegning. |
| resultater[].lighed | number | Trigram-lighed 0..1 mellem din streng og kandidaten — 1.0 er perfekt match. |
Hvad datavask-API’et giver dig
Beskidt streng ind, ren adresse ud
Send en fritekst-adressestreng med tastefejl, forkortelser, manglende postnr eller sammenskrevne ord — og få den vasket op mod DAR-registeret. Samme datavask-flow som DAWA, så du kan rydde op i CRM-, ERP- og forsikringsdata uden selv at bygge en fuzzy-matcher.
A/B/C-konfidensbånd
Hvert svar bærer et DAWA-kompatibelt kategorifelt: A = sikkert enkeltmatch, B = sandsynligt, C = vasket-men-usikkert. Et C med antal: 0 betyder, at ingen kandidat kom over lighedsgrænsen — så du forgrener på antal > 0, ikke på kategori alene.
bfe_nummer følger med
Langt de fleste vaskede kandidater kommer allerede med bfe_nummer, så du kan bygge direkte videre til ejendommen — ejendomsdata fra BBR og Matriklen — uden et ekstra opslag (dækningen udbygges løbende; feltet er null, når jordstykket endnu ikke er stemplet). Det er dét, der adskiller vasken fra en ren adresse-normalisering.
lighed-score på hver kandidat
Feltet lighed er trigram-lighed 0..1 mellem din streng og den fundne adresse. Rangeringen er lavet for dig, men scoren er med, så du selv kan sætte en strammere tærskel eller vise brugeren, hvor sikkert matchet er.
Vask og berig en hel kundeliste
Send op til 50 adresser i ét kald med POST /v1/datavask/adgangsadresser:batch — eller loop per række gennem GET-endpointet som herunder. Kør hver adressestreng fra dit CRM, ERP eller regneark igennem, forgren på antal > 0, og behold den bedste kandidats adgangsadresse_id + bfe_nummer — så har du en vasket, beriget og dedupe-bar kundeliste:
// Vask og berig en hel kundeliste — én række ad gangen mod /v1/datavask const BASE = 'https://api.grundfast.dk/v1/datavask/adgangsadresser'; const AUTH = { Authorization: 'Bearer gf_live_…' }; async function vaskOgBerig(kunder) { const beriget = []; for (const kunde of kunder) { const res = await fetch( `${BASE}?` + new URLSearchParams({ betegnelse: kunde.adresse }), { headers: AUTH }, ); const { kategori, antal, resultater } = await res.json(); if (antal > 0) { // Bedste kandidat er allerede rangeret som resultater[0] const [top] = resultater; beriget.push({ ...kunde, vasket_adresse: top.betegnelse, adgangsadresse_id: top.adgangsadresse_id, bfe_nummer: top.bfe_nummer, // bro til BBR/Matriklen (null indtil stemplet) match: kategori, // A = sikkert, B = sandsynligt }); } else { // C med antal: 0 → intet match; send til manuel gennemgang beriget.push({ ...kunde, match: 'ingen', bfe_nummer: null }); } } return beriget; }
Status & datakontrakt
Endpointet er GET /v1/datavask/adgangsadresser?betegnelse=… med en gf_live_-nøgle — samme auth og metering som de øvrige registre. Se svar-formen under „Kald datavask i din stack“ ovenfor.
GET /v1/datavask/adgangsadresserliveBeskidt adressestreng → rangerede DAR-kandidater med bfe_nummer. Live nu — kræver en gf_live_-nøgle (401 uden).
Kom i gang med datavask
Opret en gratis nøgle og kald /v1/datavask/adgangsadresser — det er live nu. Skal du vaske en hel adresseliste eller migrere fra DAWA? Skriv til os.
Se også Adresse-autocomplete, reverse geocoding & BFE og DAWA-alternativ.
Ofte stillede spørgsmål
Hvad er datavask af adresser?
Datavask tager en beskidt, fritekst-skrevet adressestreng — med tastefejl, forkortelser, manglende postnr eller sammenskrevne ord — og matcher den mod DAR (Danmarks Adresseregister). Du får rangerede, autoritative kandidater tilbage, så du kan rette op på adresserne i dine CRM-, ERP- eller forsikringsdata i stedet for at gætte.
Hvad betyder kategori A, B og C?
kategori er det DAWA-kompatible konfidensbånd: A = sikkert enkeltmatch, B = sandsynligt match, C = vasket men usikkert. Vigtigt: et C med antal: 0 betyder, at ingen kandidat kom over lighedsgrænsen — altså intet match. Forgren derfor på antal > 0, ikke på kategori alene.
Hvad er feltet lighed?
lighed er trigram-lighed på en skala fra 0 til 1 mellem din inputstreng og den fundne adresse — 1.0 er et perfekt match. Resultaterne er allerede rangeret efter lighed, men scoren er med i svaret, så du selv kan sætte en strammere tærskel eller vise den til brugeren.
Er datavask-API’et live?
Ja. GET /v1/datavask/adgangsadresser er live i produktion og kræver en gf_live_-nøgle (kald uden nøgle giver 401). Det er en del af Grundfasts DAWA-drop-in-lag oven på DAR.
Hvordan hænger vasken sammen med ejendomsdata?
De fleste vaskede kandidater bærer bfe_nummer (dækningen udbygges løbende — feltet er null, når jordstykket endnu ikke er stemplet), så du kan gå direkte videre til ejendommens BBR- og Matrikel-data uden et ekstra adresse-opslag. Data stammer fra DAR via Datafordeler / SDFI (CC BY 4.0); Grundfast leverer transformationen, stabiliteten og SLA’en oven på.
Kan jeg vaske en hel kundeliste af adresser?
Ja. Datavask af kundelister er kerne-brugsscenariet: kør hver adressestreng fra dit CRM, ERP eller regneark gennem GET /v1/datavask/adgangsadresser og få det rangerede A/B/C-match tilbage. Forgren på antal > 0, behold kandidatens adgangsadresse_id og bfe_nummer, og du har en vasket, dedupe-bar kundeliste. Skal du vaske en hel liste, sender du op til 50 adresser i ét kald med POST /v1/datavask/adgangsadresser:batch — se kodeeksemplet under “Vask og berig en hel kundeliste”.
Er datavask det samme som adressevask og databerigelse?
Adressevask er datavask specifikt på adressefeltet — at rette en beskidt adressestreng op mod DAR — og det er præcis, hvad dette endpoint gør. Databerigelsen følger med i samme svar: fordi de vaskede kandidater bærer bfe_nummer, koordinat og kommunekode, får du både en renset adresse og nøglerne til ejendommens øvrige registre i ét kald.
Kan jeg bruge det som et adressevaliderings-API?
Ja. Datavask fungerer som et API til adressevalidering: send den indtastede adresse til GET /v1/datavask/adgangsadresser og brug kategori + lighed til at afgøre, om den findes i DAR. Et A med antal: 1 er en valid, entydig adresse; et B beder brugeren bekræfte; et C med antal: 0 betyder, at adressen ikke kunne valideres. Fordi svaret er hurtigt, kan du validere adressen direkte i en formular eller et checkout-flow, før du gemmer den.
Vask enhver dansk adresse
Send en beskidt adressestreng og få rangerede kandidater med A/B/C-bånd — matchet mod hele landets adressegrundlag i DAR, klar til at rydde op i dine data.