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.
- Solbakkevej 70, 8600 Silkeborg
- aaboulevarden 1 8000 aarhus
- kongens nytorv 34 1050
- nyhavn 20, 1051 kbh k
- industrivej 12B vodskov
5 rækker = 5 kaldA0B0C0
/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.
Den rigtige adresse
Kandidaterne er rigtige DAR-adresser, og
adgangsadresse_ider den samme, uanset hvordan adressen var stavet — en stabil nøgle til at finde dubletter.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.
Lighed på hver kandidat
lighedfra 0 til 1, så I selv kan stramme grænsen eller vise brugeren, hvor sikkert et match er.BFE-nummeret følger med
Hver kandidat bærer ejendommens BFE-nummer. Det er nøglen til databerigelse med BBR, matrikel og vurdering.
{ "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.
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)
| Plan | Inkluderet | Pr. 1.000 | Ud over planen |
|---|---|---|---|
| Free | 5.000 kald for 0 kr. | 0 kr. | Stopper ved loftet |
| Starter | 100.000 kald for 99 kr./md. | 0,99 kr. | 1 kr. pr. 1.000 |
| Pro | 500.000 kald for 249 kr./md. | 0,50 kr. | 1 kr. pr. 1.000 |
| Scale | 2.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"
| Felt | Indhold |
|---|---|
| kategori | A = sikkert match, B = sandsynligt, C = gennemgå. |
| antal | Antal kandidater. 0 betyder intet match — tjek det før kategorien. |
| resultater[ | Den vaskede DAR-adresse på én linje. |
| resultater[ | DAR-UUID’et — en stabil nøgle til dubletfjernelse. |
| resultater[ | Lighed mellem jeres tekst og kandidaten, 0–1. |
| resultater[ | Ejendommens BFE-nummer, når jordstykket er kendt. |
| Hvad | Median | 95 % under |
|---|---|---|
| Datavask | 469 ms | 1,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.
| Trin | Hvad sker der |
|---|---|
| 1. Upload | En CSV- eller Excel-fil med kolonnenavne i første linje. Jeres egne kolonner — kundenummer, noter — følger med uændret. |
| 2. Tjek kolonnerne | Dashboardet gætter, hvilken kolonne der er adresse og postnummer. Ret gættet, før listen kører. |
| 3. Kør | Listen vaskes i baggrunden. Den kan sættes på pause, fortsættes eller stoppes. |
| 4. Hent | Jeres 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.
Hvem bruger det
Rene adresser er første skridt
De fleste vasker en liste for at kunne gøre noget med ejendommene bagefter. Se hvordan på en rigtig ejendom.
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å
- Databerigelse med BBR, CVR og vurderingNæste skridt: ejendommen bag hver række
- CVR-APINår kundelisten er virksomheder
- AdressevalideringÉn adresse, tjekket mens kunden er der
- Adresse-autocompleteStop fejlene, mens adressen tastes
- Adresse-APIAdresseopslag i DAR
- Hvilken ejendom holder virksomheden til på?Guide: vask CVR-adresser til BFE
Datavask-API
Vask den første liste i dag
Gratis op til 5.000 kald/md · intet kreditkort · data fra Klimadatastyrelsen/Datafordeler, CC BY 4.0