Fra Datafordelerens DAR GraphQL tilbage til REST

Find det REST-endpoint, der svarer til din DAR GraphQL-forespørgsel, og forstå hvilke id'er der passer sammen, og hvilke der ikke gør.

4 min Niveau: Avanceret ✓ Kode testet

Nogle teams flyttede fra DAWA til Danmarks Adresseregister (DAR) på Datafordeleren, før DAWA lukkede. DAR's GraphQL-tjeneste indeholder de samme data, men på registerets egen form: mange små entiteter, der refererer til hinanden med UUID'er, og forespørgsler, der skal have et registrerings- og virkningstidspunkt.

Danadresse henter adresserne fra DAR og serverer dem i DAWA's REST-form. Denne guide viser, hvilket endpoint der svarer til den forespørgsel, du har i dag, og hvordan id'erne hænger sammen.

Det, du slipper for

En adresse i DAR er spredt over flere entiteter. For at vise "Rådhuspladsen 1, 1550 København V" med koordinat og kommune skal du typisk hente:

  • DAR_Husnummer (husnummeret og referencer til vej, postnummer og adgangspunkt),
  • DAR_NavngivenVej (vejnavnet),
  • DAR_NavngivenVejKommunedel (kommune og vejkode),
  • DAR_Postnummer (postnummer og navn),
  • DAR_Adressepunkt (koordinaten).

Hver forespørgsel skal have argumenterne registreringstid og virkningstid, og du skal selv sætte svarene sammen. Hos os er det ét kald, og svaret har allerede vejnavn, postnummer, kommune, koordinat og de administrative områder indlejret.

Sådan ser et opslag af et husnummer ud i DAR GraphQL. Feltnavnene er fra DAR's offentlige skema:

graphql#dar-query
{
  DAR_Husnummer(
    where: { id_lokalId: { eq: "0a3f507a-ec01-32b8-e044-0003ba298018" } }
    registreringstid: "2026-10-15T00:00:00Z"
    virkningstid: "2026-10-15T00:00:00Z"
    first: 1
  ) {
    nodes { id_lokalId husnummertekst status navngivenVej postnummer adgangspunkt }
  }
}

navngivenVej, postnummer og adgangspunkt er UUID-referencer, som kræver tre forespørgsler mere. Det samme opslag hos os:

Shell#rest-lookup
curl -s "https://api.danadresse.dk/adgangsadresser/0a3f507a-ec01-32b8-e044-0003ba298018" \
  -H "X-Api-Key: $DANADRESSE_API_KEY"

Her læser vi de felter, du før skulle samle fra fem entiteter. srid=25832 giver koordinaten i ETRS89/UTM32, samme system som DAR's adressepunkter:

Python#rest-fields
import os

import requests

r = requests.get(
    "https://api.danadresse.dk/adgangsadresser/0a3f507a-ec01-32b8-e044-0003ba298018",
    params={"srid": 25832},
    headers={"X-Api-Key": os.environ["DANADRESSE_API_KEY"]},
    timeout=10,
)
r.raise_for_status()
a = r.json()
print("vej:      ", a["vejstykke"]["navn"], a["husnr"])
print("postnr:   ", a["postnummer"]["nr"], a["postnummer"]["navn"])
print("kommune:  ", a["kommune"]["kode"], a["kommune"]["navn"])
print("vejkode:  ", a["vejstykke"]["kode"])
print("sogn:     ", (a.get("sogn") or {}).get("navn"))
print("øst/nord: ", a["adgangspunkt"]["koordinater"])

Id'erne er de samme

Det vigtigste for en migrering: de id'er, du har gemt fra DAR, virker direkte hos os.

DAR-entitetFeltHos Danadresse
DAR_Adresseid_lokalIdid på en adresse – /adresser/{id}
DAR_Husnummerid_lokalIdid på en adgangsadresse – /adgangsadresser/{id}
DAR_Adressehusnummeradgangsadresseid på en adresse
DAR_NavngivenVejid_lokalIdid på en navngiven vej – /navngivneveje/{id}
DAR_Postnummerpostnrnr – /postnumre/{nr}. Vi bruger det firecifrede nummer, ikke id_lokalId
DAR_NavngivenVejKommunedelkommune, vejkode/vejstykker/{kommunekode}/{kode}

Det er de samme UUID'er, som DAWA brugte, fordi DAWA også byggede på DAR.

Pas på med adressereferencer fra andre registre. CVR på Datafordeleren refererer fx til adresser med andre UUID'er, som ikke matcher DAR's id_lokalId. Vil du koble data fra sådan et register med vores adresser, så brug den strukturerede adresse: kommunekode, vejkode og husnummer (plus etage og dør for en enhed). Vi udstiller den samme kombination som kvh (12 tegn) på adgangsadresser og kvhx (19 tegn) på adresser, og du kan søge på dem med /adgangsadresser?kvh=… og /adresser?kvhx=….

Opgave for opgave

OpgaveI DAR GraphQLHos Danadresse
Søg-mens-du-skriverFindes ikke. Du filtrerer selvGET /autocomplete?q=…
Slå en adresse opDAR_Adresse + DAR_Husnummer + vej, postnummer og adressepunktGET /adresser/{id}
Slå en adgangsadresse opDAR_Husnummer + referencerneGET /adgangsadresser/{id}
Alle adresser i et postnummerFiltrér DAR_Husnummer på postnummer-referencenGET /adgangsadresser?postnr=8000 med side og per_side
VejnavneDAR_NavngivenVej/navngivneveje, /vejnavne
PostnumreDAR_Postnummer/postnumre
Supplerende bynavnDAR_SupplerendeBynavnFeltet supplerendebynavn og /supplerendebynavne2
Kommune, sogn, politikreds m.fl.Referencer fra DAR_Husnummer til DAGI, som du slår op i DAGI-registretIndlejret i adgangsadressen: kommune, sogn, region, retskreds, politikreds, opstillingskreds, afstemningsområde m.fl.
Koordinat til adresseIkke en DAR-funktion/adgangsadresser/reverse?x=…&y=…
Rens en indtastet adresseIkke en DAR-funktion/datavask/adresser?betegnelse=…
Hent ændringerDAR_Events eller filtrering på registreringFra/replikering/haendelser?entitet=…&sekvensnummerfra=… eller webhooks

Status og tid

DAR har sine egne statuskoder. Vi oversætter dem til DAWA's status:

DAR-statusBetydningstatus hos os
2foreløbig3
3gældende1
4nedlagt2
5henlagt4

Lister returnerer gældende og foreløbige adresser (status 1 og 3), som DAWA gjorde, medmindre du beder om mere med status eller medtagnedlagte. Autocomplete foreslår kun adresser, der ikke er nedlagt. Hver adresse har også DAR's egen kode som darstatus. Se status, darstatus og nedlagte adresser.

Vores API viser det aktuelle billede. Der er ingen parametre svarende til registreringstid og virkningstid. Versionerne af én adresse over tid får du med /historik/adresser?id=… og /historik/adgangsadresser?id=…: en liste af versioner med virkningstart, virkningslut og status, som i DAWA. Versionerne bygges ud fra vores ændringslog, som starter i juli 2026. Har du brug for DAR's fulde bitemporale model (hvad registret vidste på et bestemt registreringstidspunkt), så brug DAR direkte.

Ændringer og sekvensnumre

DAR_Events har intet sekvensnummer, så du skal selv holde styr på, hvor langt du er nået, typisk med tidsvinduer på registreringFra. Vi giver hver ændring et stigende sekvensnummer i DAWA's replikeringsformat. Du gemmer det sidste nummer, du har behandlet, og spørger efter alt derefter. Se Hent ændringer med hændelser.

Sekvensnumrene er vores egne. De stiger videre fra det sted, hvor DAWA's nummerering slap, men de findes ikke i DAR og kan ikke sammenlignes med noget der.

Næste skridt

Relaterede guides

Markdown-kilde Fejl i guiden? Skriv til os API-reference (Swagger)

Prøv det med en gratis nøgle

2 000 kald/måned på gratisplanen. Intet kreditkort.

Opret konto →