Spring til indhold

Grundfast
Danmarks Adresseregister (DAR)

Datavask af kundelister mod DAR

Send de adresser, jeres CRM har samlet gennem årene — med stavefejl, forkortelser og manglende postnumre — og få hver af dem tilbage som en rigtig DAR-adresse med en lighed, en A/B/C-kategori og ejendommens BFE-nummer.

GET/v1/demo/datavask/adgangsadresser
klar
5/8

Ret gerne i listen.

  • Solbakkevej 70, 8600 Silkeborg
  • aaboulevarden 1 8000 aarhus
  • kongens nytorv 34 1050
  • nyhavn 20, 1051 kbh k
  • industrivej 12B vodskov
Hver linje er et rigtigt kald til samme vask som /v1/datavask/adgangsadresser — kandidater, lighed og kategori er dem, din nøgle får. “Rettet” og “tilføjet” er en sammenligning af din linje med DAR-adressen.

Hvad du får

Et svar, I kan skrive tilbage uden at gætte

Hver adresse kommer tilbage med de kandidater, DAR har, bedste først — og med tal nok til, at en regel kan afgøre, hvad der sker med rækken.

  1. Den rigtige adresse

    Kandidaterne er rigtige DAR-adresser, og adgangsadresse_id er den samme, uanset hvordan adressen var stavet — en stabil nøgle til at finde dubletter.

  2. En kategori at forgrene på

    A skrives tilbage, B bekræftes, C gennemgås — og antal: 0 er intet match. Samme bånd som DAWA’s datavask, så eksisterende regler kan genbruges.

  3. Lighed på hver kandidat

    lighed fra 0 til 1, så I selv kan stramme grænsen eller vise brugeren, hvor sikkert et match er.

  4. BFE-nummeret følger med

    Hver kandidat bærer ejendommens BFE-nummer. Det er nøglen til databerigelse med BBR, matrikel og vurdering.

GET /v1/datavask/adgangsadresser?betegnelse=kongens+nytorv+34+1050json
{
  "kategori": "B",
  "antal": 3,
  "resultater": [
    {
      "betegnelse": "Kongens Nytorv 34, 1050 København K",
      "adgangsadresse_id": "0a3f507a-ac39-32b8-e044-0003ba298018",
      "bfe_nummer": 6010136,
      "vejnavn": "Kongens Nytorv",
      "husnr": "34",
      "postnr": "1050",
      "postnrnavn": "København K",
      "kommunekode": "0101",
      "koordinat": { "lon": 12.5846681, "lat": 55.6805965 },
      "lighed": 0.697
    },
    {
      "betegnelse": "Kongens Nytorv 3, 1050 København K",
      "adgangsadresse_id": "0a3f507a-ac1d-32b8-e044-0003ba298018",
      "bfe_nummer": 6033794,
      "lighed": 0.618,
      "…": "…"
    }
  ]
}

Hele listen

Fra CSV til vasket liste — og hvad den koster

50 adresser pr. kald, svaret i samme rækkefølge som listen. Én række er ét kald, så prisen på en liste er let at regne ud på forhånd.

vask_kundeliste.pypython
import csv, requests

URL = "https://api.grundfast.dk/v1/datavask/adgangsadresser:batch"
HEADERS = {"Authorization": "Bearer gf_live_…"}

with open("kunder.csv", newline="") as f:
    kunder = list(csv.DictReader(f))

vasket = []
for i in range(0, len(kunder), 50):  # højst 50 adresser pr. kald
    bid = kunder[i : i + 50]
    adresser = sorted({k["adresse"].strip() for k in bid if len(k["adresse"].strip()) >= 2})
    svar = requests.post(URL, headers=HEADERS, json={"betegnelser": adresser}).json()
    pr_adresse = {r["input"]: r for r in svar["results"]}  # dubletter vaskes én gang
    for kunde in bid:
        r = pr_adresse.get(kunde["adresse"].strip(), {"antal": 0})
        bedst = r["resultater"][0] if r["antal"] > 0 else {}
        vasket.append({**kunde,
                       "dar_adresse": bedst.get("betegnelse"),
                       "adgangsadresse_id": bedst.get("adgangsadresse_id"),
                       "bfe_nummer": bedst.get("bfe_nummer"),
                       "kategori": r["kategori"] if r["antal"] > 0 else "intet match"})

with open("kunder_vasket.csv", "w", newline="") as f:
    w = csv.DictWriter(f, fieldnames=vasket[0].keys())
    w.writeheader(); w.writerows(vasket)
Pris pr. 1.000 kald
PlanInkluderetPr. 1.000Ud over planen
Free5.000 kald for 0 kr.0 kr.Stopper ved loftet
Starter100.000 kald for 99 kr./md.0,99 kr.1 kr. pr. 1.000
Pro500.000 kald for 249 kr./md.0,50 kr.1 kr. pr. 1.000
Scale2.000.000 kald for 599 kr./md.0,30 kr.1 kr. pr. 1.000

Én række er ét kald, og dubletter i samme batch tælles én gang. Batch-kaldet er med fra Pro-planen; på Free og Starter vasker I listen række for række med GET-kaldet eller uploader den — samme svar, samme pris pr. række. En testnøgle giver 5.000 testkald om måneden, der aldrig faktureres. Se alle planer på priser.

Kald det

Én adresse ad gangen

Til en import, der kører løbende, eller en liste på en plan uden batch. Samme nøgle og samme svarform som resten af API’et.

curl -H "Authorization: Bearer gf_live_…" \
  "https://api.grundfast.dk/v1/datavask/adgangsadresser?betegnelse=kongens+nytorv+34+1050"
Felter i svaret
FeltIndhold
kategoriA = sikkert match, B = sandsynligt, C = gennemgå.
antalAntal kandidater. 0 betyder intet match — tjek det før kategorien.
resultater[].betegnelseDen vaskede DAR-adresse på én linje.
resultater[].adgangsadresse_idDAR-UUID’et — en stabil nøgle til dubletfjernelse.
resultater[].lighedLighed mellem jeres tekst og kandidaten, 0–1.
resultater[].bfe_nummerEjendommens BFE-nummer, når jordstykket er kendt.
Svartid på serveren, målt 6. oktober 2026
HvadMedian95 % under
Datavask469 ms1,44 s

30 kald pr. række til /v1/datavask/adgangsadresser i produktion, målt med API’ets egen X-Took-Ms-header — tiden på vores server. Netværket mellem jer og os kommer oveni.

Uden kode

Upload kundelisten, hent den vasket

Har I listen i et regneark og ingen udvikler ved hånden, kan den vaskes fra dashboardet. Det er samme vask og samme pris pr. række som API’et.

Sådan virker det
TrinHvad sker der
1. UploadEn CSV- eller Excel-fil med kolonnenavne i første linje. Jeres egne kolonner — kundenummer, noter — følger med uændret.
2. Tjek kolonnerneDashboardet gætter, hvilken kolonne der er adresse og postnummer. Ret gættet, før listen kører.
3. KørListen vaskes i baggrunden. Den kan sættes på pause, fortsættes eller stoppes.
4. HentJeres fil med de vaskede kolonner tilføjet til højre. Rækker uden match ligger i en fejlfil og koster ikke noget.

En liste må have op til 10.000 rækker på Starter, 100.000 på Pro og 500.000 på Scale. På Free kan I prøve med 250 rækker.

Kun rækker med et match tæller. Den samme kørsel findes som API — POST /v1/jobs med en CSV eller JSON — til en import, der skal køre af sig selv. Se dokumentationen for job.

Spørgsmål

Ofte stillede spørgsmål

Datavask er at rette de adresser, en kundeliste har samlet gennem årene — stavefejl, forkortelser, manglende postnumre, gamle vejnavne — så hver række peger på én rigtig adresse i Danmarks Adresseregister. Resultatet er en officiel stavemåde, et stabilt DAR-id til at finde dubletter med og en kategori, der siger, hvor sikkert hvert match er.

A er et sikkert match: den bedste kandidat ligner jeres tekst meget og klart mere end den næstbedste. B er sandsynligt — lad en bruger eller en regel bekræfte det. C betyder gennemgå. Et C med antal: 0 er intet match overhovedet, så forgren altid på antal, før I kigger på kategorien.

Fordi kategorien måler, hvor tæt jeres tekst er på DAR’s, ikke om adressen findes. “kongens nytorv 34 1050” mangler bynavnet og får et B, selv om den bedste kandidat er den rigtige. Jo mere af adressen, der står i feltet, jo oftere bliver det et A.

lighed er trigram-lighed mellem jeres tekst og kandidaten, fra 0 til 1 — samme mål som PostgreSQL’s pg_trgm. Kategorierne bygger på den: A kræver mindst 0,85 og et klart forspring, B mindst 0,55. Vil I være strengere, så sæt jeres egen grænse på lighed.

Ja, fra Pro-planen: POST /v1/datavask/adgangsadresser:batch tager op til 50 adresser og svarer i samme rækkefølge. Hver unik adresse tæller som ét kald. På de andre planer looper I over GET-kaldet — resultatet er det samme.

Ja. Upload listen som CSV eller Excel under Lister i dashboardet. Den vaskes i baggrunden, og I henter jeres egen fil tilbage med de vaskede kolonner tilføjet. Starter tager 10.000 rækker pr. liste, Pro 100.000, og rækker uden match koster ikke noget.

Til at forhindre fejlen: autocomplete, så brugeren vælger en rigtig adresse, mens hun skriver. Til at tjekke den adresse, der alligevel bliver sendt: adressevalidering, som bruger samme opslag og svarer med godkend, “mente du …?” eller afvis. Datavask er til adresser, der allerede er tastet — en liste, en import, et gammelt CRM.

Datavasken gør adressen rigtig og giver jer BFE-nummeret. Databerigelse er næste skridt: med BFE-nummeret henter I bygningen fra BBR, grunden fra Matriklen og den offentlige vurdering — kolonner som opførelsesår, areal og ejendomsværdi på hver række.

Se også

Datavask-API

Vask den første liste i dag

Opret en gratis konto — de første 5.000 rækker hver måned koster ingenting, og en testnøgle følger med.

Gratis op til 5.000 kald/md · intet kreditkort · data fra Klimadatastyrelsen/Datafordeler, CC BY 4.0