Spring til indhold

Planer og restbyggeret pr. BFE

Planerne for en ejendom, slået op inde på dens største jordstykke, plus en vejledende restbyggeret fra Matriklen og BBR.

GET/v1/plan/ejendom/{bfe}

Punktet er garanteret inde på ejendommens største jordstykke — ikke et bounding-box-centrum, der kan lande hos naboen. Resten af svaret er det samme som for /v1/plan.

restbyggeret er vejledende: bebyggelsesprocenten fra den mest specifikke vedtagne plan (delområde, så lokalplan, så kommuneplanramme) gange grundarealet fra Matriklen, minus BBR’s samlede bygningsareal. Alle input står i svaret, så tallet kan efterregnes.

Kan grundlaget ikke give et tal pr. ejendom, er restbyggeret_m2 null, og ikke_beregnet siger hvorfor: procenten gælder området som helhed, den er 0, to vedtagne planer er uenige, den gælder det enkelte jordstykke på en ejendom med flere, eller BBR kunne ikke læses.

Restbyggeretten er vejledende. Bygningsreglementets regler for, hvad der tæller med i etagearealet — kældre, carporte, udhuse — kan ikke læses af registrene, og planens tekst afgør. Kontakt kommunen før et projekt.

Godkendelse · API-nøgle

Send din nøgle som Authorization: Bearer gf_live_… — eller gf_test_… for gratis sandbox-kald. Se Godkendelse og nøgler.

Afregning

Ét kald — også selvom opslaget læser Plandata, Matriklen og BBR.

Eksempel

curl "https://api.grundfast.dk/v1/plan/ejendom/5651067" \
  -H "Authorization: Bearer $GRUNDFAST_API_KEY"
Svar · fra demo-endpointet200
{
  "punkt": {
    "lon": 9.5328657,
    "lat": 56.1578621
  },
  "epsg25832": [
    533097.89,
    6223777.27
  ],
  "bfe_nummer": 5651067,
  "zone": {
    "status": "byzone",
    "kilde": "zonekort",
    "kommune": {
      "kode": 740,
      "navn": "Silkeborg"
    },
    "konflikt": false
  },
  "har_lokalplan": false,
  "lokalplaner": [],
  "delomraader": [],
  "kommuneplanrammer": [
    {
      "plan_id": 10972225,
      "rammenr": "10-B-41",
      "navn": "Sydbyen vest",
      "status": "vedtaget",
      "distrikt": null,
      "kommune": {
        "kode": 740,
        "navn": null
      },
      "anvendelse": "Boligområde",
      "zone": "Byzone",
      "fremtidig_zone": "Byzone",
      "datoer": {
        "forslag": "2022-01-31",
        "vedtaget": "2022-08-29",
        "ikrafttraedelse": "2022-09-12",
        "aflyst": null
      },
      "dokument_url": "https://dokument.plandata.dk/12_10972215_1662721059028.pdf",
      "bebyggelse": {
        "bebyggelsesprocent": 30,
        "beregnes_af": "Den enkelte ejendom",
        "max_etager": 2,
        "max_hoejde_m": 8.5
      }
    },
    {
      "plan_id": 12189078,
      "rammenr": "10-B-41",
      "navn": "Sydbyen vest, Sydbyen",
      "status": "forslag",
      "distrikt": null,
      "kommune": {
        "kode": 740,
        "navn": null
      },
      "anvendelse": "Boligområde",
      "zone": null,
      "fremtidig_zone": "Byzone",
      "datoer": {
        "forslag": "2026-05-26",
        "vedtaget": null,
        "ikrafttraedelse": null,
        "aflyst": null
      },
      "dokument_url": "https://dokument.plandata.dk/12_12189076_1780294192892.pdf",
      "bebyggelse": {
        "bebyggelsesprocent": 30,
        "beregnes_af": "Den enkelte ejendom",
        "max_etager": 2,
        "max_hoejde_m": null
      }
    }
  ],
  "aflyste_lokalplaner": [],
  "restbyggeret": {
    "vejledende": true,
    "restbyggeret_m2": 22,
    "tilladt_etageareal_m2": 138,
    "grundlag": {
      "kilde": "kommuneplanramme",
      "plan_id": 10972225,
      "plannr": "10-B-41",
      "delnr": null,
      "bebyggelsesprocent": 30,
      "beregnes_af": "Den enkelte ejendom"
    },
    "grundareal_m2": 460,
    "antal_jordstykker": 1,
    "eksisterende_etageareal_m2": 116,
    "eksisterende_bebygget_areal_m2": 141,
    "antal_bygninger": 3,
    "bygninger_uden_etageareal": 2,
    "formel": "restbyggeret_m2 = bebyggelsesprocent / 100 × grundareal_m2 − eksisterende_etageareal_m2",
    "ikke_beregnet": null,
    "forbehold": "Vejledende beregning. Planens tekst (dokument_url) er afgørende, og bygningsreglementets definition af etageareal — herunder hvilke kældre, carporte, garager og udhuse der ikke medregnes — kan ikke læses af registrene. Kontakt kommunen før et projekt. Bebyggelsesprocenten er hentet fra kommuneplanrammen, som binder kommunens planlægning og ikke grundejeren direkte; uden lokalplan afgør kommunen sagen efter byggeloven og bygningsreglementet."
  },
  "kilde": {
    "wfs": "https://geoserver.plandata.dk/geoserver/wfs",
    "lag": [
      "pdk:theme_pdk_kommuneplan_oversigt_vedtaget",
      "pdk:theme_pdk_zonekort_v",
      "pdk:theme_pdk_lokalplan_vedtaget",
      "pdk:theme_pdk_lokalplan_forslag",
      "pdk:theme_pdk_lokalplan_aflyst",
      "pdk:theme_pdk_lokalplandelomraade_vedtaget",
      "pdk:theme_pdk_lokalplandelomraade_forslag",
      "pdk:theme_pdk_kommuneplanramme_alle_vedtaget_v",
      "pdk:theme_pdk_kommuneplanramme_alle_forslag_v"
    ]
  },
  "meta": {
    "kilde": "Plandata.dk (Plan- og Landdistriktsstyrelsen) via Grundfast",
    "grundfast_version": "0.1.0"
  }
}

Parametre

bfeintegerstipåkrævet
BFE-nummeret på ejendommen.Eksempel: 5651067

Felter i svaret

zone.statusstring | null
byzone, sommerhusomraade eller landzone. null kun når zonekortet har to forskellige zoner i punktet (zone.konflikt: true).
zone.kildestring
zonekort, når et polygon dækker punktet. afledt for landzone: zonekortet rummer kun byzone og sommerhusområder, og planlovens § 34 gør resten til landzone.
har_lokalplanboolean
Sand, når mindst én vedtaget lokalplan dækker punktet. Et målt svar — en fejl giver 502, aldrig false.
lokalplaner[]object[]
Vedtagne og foreslåede lokalplaner, vedtagne først: plannr, navn, status, anvendelse, datoer, dokument_url (planens PDF) og bebyggelse.
lokalplaner[].bebyggelseobject
bebyggelsesprocent, beregnes_af (fx "Den enkelte ejendom" eller "Området som helhed"), max_etager og max_hoejde_m — som registret har dem. Et 0 gives videre råt.
delomraader[]object[]
Lokalplanernes delområder i punktet, med deres egen bebyggelse.
kommuneplanrammer[]object[]
Rammer fra kommuneplan og kommuneplantillæg: rammenr, anvendelse, zone, fremtidig_zone, bebyggelse. Binder kommunens planlægning, ikke grundejeren direkte.
aflyste_lokalplaner[]object[]
Lokalplaner i punktet, der er aflyst, bortfaldet eller tilbagetrukket, med aflysningstype og datoer.aflyst.
restbyggeret.restbyggeret_m2number | null
tilladt_etageareal_m2 − eksisterende_etageareal_m2. Negativ, når grunden allerede er bebygget ud over procenten. null med årsag i ikke_beregnet.
restbyggeret.grundlagobject
Hvilken plan procenten er taget fra: kilde (delomraade, lokalplan eller kommuneplanramme), plannr, delnr, bebyggelsesprocent, beregnes_af.
restbyggeret.grundareal_m2number | null
Summen af Matriklens registrerede arealer for ejendommens jordstykker. eksisterende_etageareal_m2 er BBR’s samlede bygningsareal.
restbyggeret.forbeholdstring
Forbeholdet i klar tekst — skærpet, når procenten kommer fra en kommuneplanramme.

Statuskoder

StatusBetydning
200Svaret er leveret.
400BFE-nummeret er ikke et positivt heltal.
401Nøglen mangler eller er ugyldig.
404BFE-nummeret findes ikke i Matriklen, eller ejendommen har ingen jordstykkegeometri.
429Burst-grænsen eller månedskvoten er nået. Se Retry-After.
502Plandata kunne ikke nås, svarede ubrugeligt, eller et af lagene var tomt. Rapporteres aldrig som landzone eller "ingen lokalplan".
503Plandata-kilden er ikke konfigureret i dette miljø.

Fejl har altid formen { "error": "…" }. Se Fejl og statuskoder for, hvad der kan prøves igen.

Prøv det

Live-kald fra siden

Demo-endpointet svarer altid med BFE 5651067 (Solbakkevej 70, Silkeborg): byzone, ingen lokalplan, en kommuneplanramme på 30 % — og restbyggeretten regnet fra BBR og Matriklen for samme ejendom. BFE-nummeret i formularen bruges ikke.

GET /v1/demo/plan

Bruges ofte sammen med

Læs mere om Plandata, og hvad data kan bruges til, på produktsiden.