REST API

Danmarks Adresser

Erstatning for DAWA, som lukker ned. Data synkroniseres direkte fra Datafordeleren.

GET /vejnavne?postnr= Vejnavne i postnummer
Parametre
NavnTypeBeskrivelse
postnr string required Postnummer. Pipe-separeret for flere, f.eks. 2800|2830
Eksempel-svar
application/json
[
  
    "navn" "Agerbovej"
    "postnumre" 
       "nr" "2800" "navn" "Kongens Lyngby" 
    
    "kommuner" 
       "kode" "0173" "navn" "Lyngby-Taarbæk" 
    
  
]
Prøv det
GET 
GET /adresser?vejnavn=&postnr= Adresser i postnummer
Parametre
NavnTypeBeskrivelse
vejnavn string optional Vejnavn. Pipe-separeret for flere.
postnr string optional Postnummer. Pipe-separeret for flere.
kommunekode string optional Kommunekode. Alternativ til postnr. Pipe-separeret.
Eksempel-svar
application/json
[
  
    "id" "0a3f50a8-63c2-32b8-e044-0003ba298018"
    "kvhx" "01730004__3A______"
    "status" "1"
    "etage" null
    "doer" null
    "adressebetegnelse" "Agerbovej 3A, 2800 Kongens Lyngby"
    "adgangsadresse" 
      "id" "0a3f507e-63c2-32b8-e044-0003ba298018"
      "vejstykke"  "navn" "Agerbovej" 
      "husnr" "3A"
      "postnummer"  "nr" "2800" "navn" "Kongens Lyngby" 
      "kommune"  "kode" "0173" "navn" "Lyngby-Taarbæk" 
      "sogn"  "kode" "7061" "navn" "Lyngby" 
      "region"  "kode" "1084" "navn" "Region Hovedstaden" 
      "adgangspunkt"  "koordinater" 12.4827 55.7726 
    
  
]
Prøv det
GET 
GET /adgangsadresser?postnr=&kommunekode=&vejnavn= Adgangsadresser (unikke husnumre)

Returnerer unikke adgangsadresser (husnumre) for et givent postnummer, kommune eller vejnavn. En adgangsadresse er en fysisk indgang/bygning — flere adresser (etage+dør) kan dele samme adgangsadresse.

Parametre
ParamBeskrivelse
postnrPostnummer, f.eks. 2800
kommunekodeKommunekode, f.eks. 0173
vejnavnVejnavn, f.eks. Agerbovej

Mindst ét filter er påkrævet.

Response

  
    "id" "18fbd56e-c6b2-4d0f-bb08-80133edb896e"
    "status" 3
    "vejnavn" "Agerbovej"
    "husnr" "1"
    "postnr" "2800"
    "postnrnavn" "Kongens Lyngby"
    "kommunekode" "0173"
    "x" 723359.53
    "y" 6173562.74
    "betegnelse" "Agerbovej 1, 2800 Kongens Lyngby"
  
Prøv det
GET /postnumre Alle postnumre

Returnerer alle postnumre i Danmark.

Response

  
    "nr" "0800"
    "navn" "Høje Taastrup"
    "kommuner" 
       "kode" "0169" "navn" "Høje-Taastrup" 
    
  
Prøv det
GET /postnumre/{nr} Postnummer med kommuner

Returnerer et enkelt postnummer med tilhørende kommuner (udledt fra adresser-tabellen).

Response

  "nr" "2800"
  "navn" "Kongens Lyngby"
  "kommuner" 
     "kode" "0173" "navn" "Lyngby-Taarbæk" 
  
Prøv det
GET /sogne/{kode} Sogn med geometri
Parametre
NavnTypeBeskrivelse
kode path required Sognekode, f.eks. 7061
format string optional Sæt til geojson for GeoJSON FeatureCollection med geometri
Eksempel-svar
application/json

  "dagi_id" "bfaa06c3-..."
  "kode" "7061"
  "navn" "Lyngby"
  "bbox" 12.46 55.75 12.52 55.79
  "visueltcenter" 12.49 55.77
Med format=geojson returneres en GeoJSON FeatureCollection med fuld polygon-geometri.
Prøv det
GET 
GET /sogne?sogn= Sogne-søgning
Parametre
NavnTypeBeskrivelse
sogn string required Sognekode
Eksempel-svar
application/json
[
  
    "dagi_id" "bfaa06c3-..."
    "kode" "7061"
    "navn" "Lyngby"
    "bbox" 12.46 55.75 12.52 55.79
    "visueltcenter" 12.49 55.77
  
]
Prøv det
GET 
GET /kommuner?kommune=&format= Kommuner med geometri
Parametre
NavnTypeBeskrivelse
kommune string optional Kommunekode. Udelad for alle kommuner.
format string optional Sæt til geojson for GeoJSON FeatureCollection
Eksempel-svar
application/json
[
  
    "kode" "0173"
    "navn" "Lyngby-Taarbæk"
    "dagi_id" "389710"
    "regionskode" "1084"
    "bbox" 12.42 55.74 12.55 55.82
    "visueltcenter" 12.49 55.78
  
]
Prøv det
GET 
GET /status Sync-status og tabelantal
Beskrivelse

Returnerer aktuel sync-status: igangværende opgaver med progress, fejlede opgaver med fejlbesked, fuldførte opgaver, og antal rækker i alle tabeller.

Eksempel-svar
application/json

  "lastSyncCompleted" "2026-03-10T07:14:19Z"
  "syncInProgress" false
  "hasErrors" true
  "currentTasks" 
  "failedTasks" 
    "taskName" "Adresser"
    "totalProcessed" 760500
    "lastCompletedPage" 1521
    "failedAt" "2026-03-10T09:32:11Z"
    "errorMessage" "3 p\u00e5 hinanden f\u00f8lgende fejl p\u00e5 side 1522..."
    "startedAt" "2026-03-10T07:08:52Z"
    "duration" "2t 23m"
  
  "completedTasks" 
    "taskName" "DAGI"
    "totalProcessed" 2205
    "completedAt" "2026-03-10T07:14:19Z"
    "duration" "0m 21s"
  
  "tables" 
    "postnumre" 1089
    "kommuner" 99
    "sogne" 2106
    "vejnavne" 34500
    "vejnavnPostnumre" 57903
    "vejnavnKommuner" 53060
    "adresser" 760500
  
Prøv det
GET 
POST /status/delta?dage=14 Delta-sync (kun ændringer, auto-since)

Henter kun ændringer fra Datafordeleren. Meget hurtigere end fuld sync — typisk sekunder i stedet for timer. Opdaterer, tilføjer og sletter adresser, vejnavne og postnumre baseret på ændringer.

Uden parametre bruger den automatisk tidspunktet for sidste sync. Hvis ingen sync er kørt før, bruges 14 dage som default.

Parametre
ParamBeskrivelse
dageAntal dage at kigge tilbage (valgfri — uden denne bruges sidste sync-tidspunkt automatisk)
Eksempler
POST /status/delta          
POST /status/delta?dage=7   
Response 200

  "message" "Delta-sync startet (ændringer siden sidste sync (2026-03-15 10:00 UTC))."
  "since" "2026-03-15T10:00:00Z"
Resultat

Når delta-sync er færdig, vises resultatet i GET /status under lastDelta:


  "completedAt" "2026-03-16T12:00:00"
  "adresser"  "nye" 5 "opdateret" 12 "slettet" 3 "antalÆndringer" 20 
  "vejnavne"  "nye" 1 "kommuneRelationer" 2 "postnrRelationer" 1 
  "postnumre"  "nye" 0 "opdateret" 0 
Prøv det
POST /status/stop Stop kørende synkronisering
Beskrivelse

Sender et stop-signal til den kørende synkronisering. Synkroniseringen stopper efter den nuværende side er færdig, og opgaverne markeres som fejlede med beskeden "Stoppet manuelt af bruger." Brug derefter POST /status/resume for at genoptage fra checkpoint. Returnerer 400 Bad Request hvis ingen synkronisering kører.

Svar
200 OK

  "message" "Stop-signal sendt. Synkroniseringen stopper efter nuværende side."
  "tasks" "Adresser"
400 Bad Request
 "message" "Ingen synkronisering kører." 
Prøv det
POST 
POST /status/resume Genoptag fejlede opgaver
Beskrivelse

Genoptager fejlede sync-opgaver fra deres sidst gemte checkpoint. Nulstiller fejlstatus og trigger sync-processen. Returnerer 409 Conflict hvis en synkronisering allerede kører, eller 400 Bad Request hvis der ingen fejlede opgaver er.

Svar
200 OK

  "message" "Genoptager fejlede opgaver."
  "tasks" 
    "taskName" "Adresser"
    "resumeFromPage" 1522
  
409 Conflict
 "message" "En synkronisering k\u00f8rer allerede." 
400 Bad Request
 "message" "Ingen fejlede opgaver at genoptage." 
Prøv det
POST 
POST /status/resync Genstart synkronisering
Beskrivelse

Nulstiller al sync-progress og starter en helt ny fuld synkronisering fra Datafordeleren. Brug POST /status/resume i stedet, hvis du blot vil genoptage fejlede opgaver. Returnerer 409 Conflict hvis en synkronisering allerede kører.

Sync-trin
TrinOpgaveBeskrivelse
1 DAGI Henter kommuner og sogne med geometri fra Datafordelerens fildownload. ~99 kommuner, ~2100 sogne.
2 Postnumre Henter alle postnumre fra DAR REST API. ~1100 postnumre.
3 Vejnavne Henter alle navngivne veje fra DAR REST API (NavngivenVej) med kommune- og postnummer-relationer. ~37.000 vejnavne.
4 Adresser Henter alle adresser per kommune fra DAR REST API med fulde husnummerdata. ~3.8M adresser. Gemmer checkpoint per kommune, så den kan genoptages.
Svar
200 OK
 "message" "Ny fuld synkronisering startet." 
409 Conflict
 "message" "En synkronisering k\u00f8rer allerede." 
Prøv det
POST 
GET /autocomplete?q= Adresse-autocomplete (DAWA-kompatibel)
Beskrivelse

Trinvis adresse-autocomplete der fungerer som dawa.aws.dk/autocomplete. Returnerer forslag baseret på hvad brugeren har skrevet: først vejnavne, så adgangsadresser, så individuelle enheder (etage/dør).

Parametre
NavnTypeBeskrivelse
q string required Søgetekst. Styrer automatisk hvilken fase der returneres.
per_side int optional Antal resultater (default 20, max 100)
fuzzy bool optional Aktivér fuzzy-søgning (default false)
Tre-trins flow
TrinInput-eksempeltypeBeskrivelse
1 ?q=marievej vejnavn Matchende vejnavne. tekst inkluderer trailing space så brugeren kan skrive videre.
2 ?q=marievej 2 adgangsadresse Adgangsadresser på tværs af postnumre. caretpos peger efter komma, klar til postnr.
3 ?q=marievej 2, 2900 adresse Individuelle enheder (etage/dør) i den specifikke bygning.
Eksempel-svar (trin 1: vejnavn)
application/json
[
  
    "type" "vejnavn"
    "tekst" "Marievej "
    "forslagstekst" "Marievej"
    "caretpos" 9
    "data"  "navn" "Marievej" 
  
]
Eksempel-svar (trin 2: adgangsadresse)
application/json
[
  
    "type" "adgangsadresse"
    "tekst" "Marievej 2, , 2900 Hellerup"
    "forslagstekst" "Marievej 2, 2900 Hellerup"
    "caretpos" 12
    "data" 
      "id" "0a3f507d-..."
      "vejnavn" "Marievej"
      "husnr" "2"
      "postnr" "2900"
      "postnrnavn" "Hellerup"
      "kommunekode" "0157"
      "x" 12.54 "y" 55.73
    
  
]
Eksempel-svar (trin 3: adresse)
application/json
[
  
    "type" "adresse"
    "tekst" "Marievej 2, 1. tv, 2900 Hellerup"
    "forslagstekst" "Marievej 2, 1. tv, 2900 Hellerup"
    "caretpos" 32
    "data" 
      "id" "abc123..."
      "vejnavn" "Marievej"
      "husnr" "2"
      "etage" "1"
      "doer" "tv"
      "postnr" "2900"
      "postnrnavn" "Hellerup"
      "kommunekode" "0157"
      "x" 12.54 "y" 55.73
    
  
]
Prøv det
GET