Spørgsmål · Adresser
Findes der et API til at normalisere adresser?
Ja: det er endpointet POST /api/v1/contact. Du sender det en adresse, én eller op til fem hundrede ad gangen, og det svarer med vej, postnummer og by i den korrekte postform for dens land, plus resultatet af, hvad der blev ændret og hvorfor. I Danmark, Norge, Finland, Tyskland og de andre lande, hvis nationale register er i drift, verificeres vej og husnummer ét for ét, med koordinater.
Hvad kaldet gør
Endpointet for kontaktverificering sætter adressen i landets postform, og med den det navn, der følger med. Det læser vej, husnummer, postnummer og by sammen, ikke ét felt ad gangen, og oplyser hver rettelse. Landet angives i feltet country_code (ISO 3166-1) eller i feltet country, skrevet på enhver måde.
Én kontakt ad gangen i forespørgslens body eller en liste i feltet items, op til fem hundrede pr. kald. Hvert kald kræver et token, som du opretter på din konto efter registreringen og sender med i headeren Authorization: Bearer. Tokenet kan få en udløbsdato eller gælde, indtil du tilbagekalder det.
Sådan kommer resultatet tilbage
Svaret indeholder to former af samme adresse: en læsbar med æ, ø og å, og postformen til udskrivning af etiketter, med store bogstaver. Du har brug for begge, af forskellige grunde: den første til at vise adressen for en medarbejder eller i en brugerflade, den anden til selve udskrivningen.
Med dem følger et resultat i nøgleord — korrekt, ændret med detaljerne om, hvad der blev ændret felt for felt, eller skal tjekkes, når adressen ikke kan genopbygges med sikkerhed, med årsagen i klar tekst: vej ikke fundet i kommunen, utilstrækkelige data, husnummer ikke fundet. Intet rettes nogensinde i stilhed: ændrer vi noget, fortæller vi det, og er vi ikke sikre, siger vi det lige så tydeligt i stedet for at gætte. Hvor registret er i drift, får du også husnummerets koordinater, kommunekoden og, i de byer, der har dem, bydelen.
Én adresse eller batchkørsler
Under fem hundrede får du svaret med det samme, i samme kald: det typiske tilfælde er en tilmeldingsformular eller en checkout, hvor adressen skal tjekkes i det øjeblik, brugeren skriver den. Til større lister, op til hundrede tusind adresser ad gangen, tilføjer du "async": true: forespørgslen returnerer straks en jobkode, og behandlingen går i kø, den samme, som håndterer batchjob uploadet fra websitet. Du læser resultatet med et GET-kald til samme endpoint med koden, i JSON eller, hvis du har brug for en fil at downloade, i CSV.
Autofuldførelse i dine formularer
Bygger du en adresseformular, giver /api/v1/suggest autofuldførelse, mens brugeren skriver: vej, by og husnummer foreslås undervejs, og feltet er allerede verificeret ved valget i stedet for at skulle tjekkes bagefter med et separat kald. Bruges fra din egen server, som fungerer som proxy til endpointet: tokenet må aldrig komme ud i slutbrugerens browser.
Hvornår det giver mening at integrere
Det giver mening, når adressen kommer ind i registret igen og igen, ikke én gang: en tilmeldingsformular, en webshops checkout, et CRM, der fyldes fra flere kanaler. At tjekke den dér, i det øjeblik den kommer ind, forhindrer, at forkerte adresser hober sig op og skal ryddes op i partier før hver forsendelse. Har du derimod allerede en liste, der skal rettes én gang, er det enklere at uploade den som Excel- eller CSV-fil fra websitet: samme motor, uden en eneste linje kode.
Fejl, grænser og den fulde dokumentation
Hvert svar har en HTTP-kode, der svarer til det, der skete: 401, hvis tokenet mangler eller er ugyldigt, 413, hvis partiet overskrider grænsen, 429, hvis du har overskredet det tilladte antal forespørgsler i minuttet, 402, hvis kreditten ikke rækker til kaldet. En adresse, der ikke kan normaliseres, er ikke en API-fejl: svaret kommer under alle omstændigheder, med det resultat, der forklarer hvorfor.
På API-siden finder du alle endpoints — adresse, deduplikering, e-mail, telefon, website, berigelse af navn — med parametre, curl-eksempler og fejlkoder i deres helhed. Arbejder du med et værktøj, der importerer specifikationer, findes der også openapi.json.
Et minimalt kald
{"address":"rådhuspladsen 1","postcode":"DK-1550","city":"københavn v","country_code":"DK"}
1550 KØBENHAVN V
resultat: ændret (postnummer), verificeret i det nationale register
Det fulde svar indeholder også postformen, detaljerne for hvert ændret felt, husnummerets koordinater og dataene, som du sendte dem, til sammenligning.
Spørgsmålene herunder
Skal jeg oprette mig for at bruge API'et?
Ja. Du opretter dig gratis, opretter et token på din konto og bruger det i Authorization-headeren i hvert kald. Tokenet kan tilbagekaldes og genskabes når som helst.
Hvor mange adresser kan jeg sende i ét kald?
Op til fem hundrede i feltet items, med øjeblikkeligt svar. Derover tilføjer du async:true: forespørgslen går i kø, og du læser resultatet, når det er klar.
Hvilke lande verificeres?
Dem, hvis nationale adresseregister er i drift, Danmark iblandt: den opdaterede liste står på landesiden. For alle andre lande kommer adressen tilbage i sin postform, og resultatet siger, hvilken af de to der blev gjort.
Hvad sker der, hvis en adresse ikke kan rettes med sikkerhed?
Svaret kommer under alle omstændigheder, med et resultat, der forklarer årsagen: vej ikke fundet i kommunen, utilstrækkelige data, husnummer ikke fundet. Vi opfinder ikke en plausibel adresse.
Kan jeg prøve, før jeg integrerer API'et i min applikation?
Ja: siden til adresseverificering kører på samme motor og kræver ikke en eneste linje kode, nyttig til at få en fornemmelse, før du kobler API'et på.
Læs API-dokumentationen
Endpoints, parametre, curl-eksempler og OpenAPI-specifikationen: alt, hvad du skal bruge for at integrere adresseverificering i din applikation.
Læs API-dokumentationenLæs også: Prøv adresseverificering · Verificer en Excel-fil · Hvorfor post kommer retur