Spring til indhold
Hjælpecenter

Kodeeksempel: slå jordforurening op

2 min læsning

Jordforurening på en matrikel

Kortlagt jordforurening hører til jordstykket — ikke til den enkelte adresse. Opslaget sker derfor på ejerlav + matrikelnummer, præcis som /v1/jordstykker:

Bash
curl -H "Authorization: Bearer <nøgle>" \
  "https://api.danskadresseapi.dk/v1/jordforurening/2000151/639"

Svaret

JSON
{
  "ejerlavskode": 2000151,
  "matrikelnr": "639",
  "kortlagt": true,
  "count": 1,
  "results": [
    {
      "lokalitetsnr": "101-00001",
      "status": "V2 kortlagt",
      "v1_kortlagt": false,
      "v2_kortlagt": true,
      "lokalitetsnavn": "Søfortvej 5, m.fl., Prøvestenen",
      "regionsnavn": "Region Hovedstaden",
      "attest_url": "https://jord.miljoeportal.dk/report/?elav=2000151&matrnr=639",
      "kilde_opdateret": "2026-04-27"
    }
  ]
}

V1 og V2 — hvad er forskellen?

NiveauBetydning
V1Regionen har viden om aktiviteter, der kan have forurenet grunden. Ikke undersøgt endnu.
V2Forurening er påvist ved undersøgelse.

En lokalitet kan være begge dele; så står der V1 og V2 kortlagt, og både v1_kortlagt og v2_kortlagt er true. Brug de to booleans frem for at læse status-teksten — så slipper du for at parse dansk, og din kode brækker ikke hvis regionerne tilføjer en formulering.

En ren grund giver 200, ikke 404

Har matriklen ingen kortlagt forurening, får du stadig et svar:

JSON
{ "ejerlavskode": 2000151, "matrikelnr": "999x", "kortlagt": false, "count": 0, "results": [] }

Det er bevidst. En 404 ville ikke kunne skelnes fra "ukendt matrikel", og for langt de fleste grunde er "ingen forurening" netop det svar man leder efter.

Fra adresse til forurening

Har du en adresse, så hent først dens matrikel og slå derefter op:

Python
import os, requests

KEY = os.environ["DANSKADRESSEAPI_KEY"]
H = {"Authorization": f"Bearer {KEY}"}
BASE = "https://api.danskadresseapi.dk"

adr = requests.get(f"{BASE}/v1/adgangsadresser/0a3f5096-6d67-32b8-e044-0003ba298018",
                   headers=H, timeout=15).json()

elav = adr["ejerlavskode"]
matr = adr["matrikelnr"]

jord = requests.get(f"{BASE}/v1/jordforurening/{elav}/{matr}", headers=H, timeout=15).json()

if not jord["kortlagt"]:
    print("Ingen kortlagt jordforurening på matriklen")
else:
    for sag in jord["results"]:
        niveau = "påvist" if sag["v2_kortlagt"] else "mistanke"
        print(f"{sag['lokalitetsnr']}: {niveau} — {sag['attest_url']}")

Filtrér på tværs

Listeendpointet tager ejerlavskode, regionsnavn og niveau:

Bash
curl -H "Authorization: Bearer <nøgle>" \
  "https://api.danskadresseapi.dk/v1/jordforurening?regionsnavn=Region%20Midtjylland&niveau=v2&limit=100"

niveau=v2 matcher også lokaliteter der er både V1 og V2.

Godt at vide

  • Data kommer fra Danmarks Miljøportal (DKjord) og genhentes hver nat. kilde_opdateret viser hvornår regionen sidst rørte den enkelte sag.
  • attest_url peger på den officielle jordforureningsattest — den samme man ellers selv skal finde frem ved en bolighandel.
  • Flere adresser på samme matrikel deler naturligvis samme sager.
  • En matrikel kan have flere lokaliteter. Tjek count frem for at antage én.
Var dette nyttigt?