| Navn | Type | Beskrivelse | |
|---|---|---|---|
| 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. |
[ { "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] } } } ]
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.
| Param | Beskrivelse |
|---|---|
| postnr | Postnummer, f.eks. 2800 |
| kommunekode | Kommunekode, f.eks. 0173 |
| vejnavn | Vejnavn, f.eks. Agerbovej |
Mindst ét filter er påkrævet.
[ { "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" } ]
Returnerer alle postnumre i Danmark.
[ { "nr": "0800", "navn": "Høje Taastrup", "kommuner": [ { "kode": "0169", "navn": "Høje-Taastrup" } ] } ]
Returnerer et enkelt postnummer med tilhørende kommuner (udledt fra adresser-tabellen).
{ "nr": "2800", "navn": "Kongens Lyngby", "kommuner": [ { "kode": "0173", "navn": "Lyngby-Taarbæk" } ] }
| Navn | Type | Beskrivelse | |
|---|---|---|---|
| kode | path | required | Sognekode, f.eks. 7061 |
| format | string | optional | Sæt til geojson for GeoJSON FeatureCollection med geometri |
{ "dagi_id": "bfaa06c3-...", "kode": "7061", "navn": "Lyngby", "bbox": [12.46, 55.75, 12.52, 55.79], "visueltcenter": [12.49, 55.77] }
format=geojson returneres en GeoJSON FeatureCollection med fuld polygon-geometri.
| Navn | Type | Beskrivelse | |
|---|---|---|---|
| sogn | string | required | Sognekode |
[ { "dagi_id": "bfaa06c3-...", "kode": "7061", "navn": "Lyngby", "bbox": [12.46, 55.75, 12.52, 55.79], "visueltcenter": [12.49, 55.77] } ]
| Navn | Type | Beskrivelse | |
|---|---|---|---|
| kommune | string | optional | Kommunekode. Udelad for alle kommuner. |
| format | string | optional | Sæt til geojson for GeoJSON FeatureCollection |
[ { "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] } ]
Returnerer aktuel sync-status: igangværende opgaver med progress, fejlede opgaver med fejlbesked, fuldførte opgaver, og antal rækker i alle tabeller.
{ "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 } }
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.
| Param | Beskrivelse |
|---|---|
| dage | Antal dage at kigge tilbage (valgfri — uden denne bruges sidste sync-tidspunkt automatisk) |
POST /status/delta → auto-since fra sidste sync POST /status/delta?dage=7 → ændringer fra de seneste 7 dage
{ "message": "Delta-sync startet (ændringer siden sidste sync (2026-03-15 10:00 UTC)).", "since": "2026-03-15T10:00:00Z" }
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 } }
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.
{ "message": "Stop-signal sendt. Synkroniseringen stopper efter nuværende side.", "tasks": ["Adresser"] }
{ "message": "Ingen synkronisering kører." }
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.
{ "message": "Genoptager fejlede opgaver.", "tasks": [{ "taskName": "Adresser", "resumeFromPage": 1522 }] }
{ "message": "En synkronisering k\u00f8rer allerede." }
{ "message": "Ingen fejlede opgaver at genoptage." }
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.
| Trin | Opgave | Beskrivelse |
|---|---|---|
| 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. |
{ "message": "Ny fuld synkronisering startet." }
{ "message": "En synkronisering k\u00f8rer allerede." }
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).
| Navn | Type | Beskrivelse | |
|---|---|---|---|
| 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) |
| Trin | Input-eksempel | type | Beskrivelse |
|---|---|---|---|
| 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. |
[ { "type": "vejnavn", "tekst": "Marievej ", "forslagstekst": "Marievej", "caretpos": 9, "data": { "navn": "Marievej" } } ]
[ { "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 } } ]
[ { "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 } } ]