Plandata · Planloven

# Zone og lokalplan på et koordinat — med status, PDF og bebyggelsesprocent

Hvilken zone ligger grunden i, hvilke **lokalplaner og kommuneplanrammer** dækker den, og hvad må der bygges? Ét kald læser kommunernes planer i Plandata — og på et BFE får du en vejledende restbyggeret med alle input.

[Kom i gang gratis](https://grundfast.dk/dashboard?mode=register) [Se dokumentationen](https://grundfast.dk/docs/api/plan)

Kaldet

- [GET /v1/plan?lon=&lat=](https://grundfast.dk/docs/api/plan)

Én ejendom, alle planer

## Hvilke planer gælder grunden — og hvad må der bygges?

Vælg et eksempel eller søg en adresse. Zone, lokalplaner, delområder og kommuneplanrammer tegnes fra Plandata; en plan, der kun dækker en del af grunden, siges som sådan.

Søg i alle 2,7 mio. danske adgangsadresser.

Prøv fx

Eksempler

Henter geometri …

[Hotel d'AngleterreHovedvagtsgade 3, 1103 København K](https://grundfast.dk/ejendom/6010136/hovedvagtsgade-3-1103-koebenhavn-k)

- PlandataPlandata.dkByzone · Lokalplan 208lokalplan 152 på en del af grunden · D'angleterre · Ramme R24.S.1.44 **Zone**
Byzone **Lokalplan 208**
d'Angleterre **Lokalplan 152**
Strøget (en del af grunden) **Ramme R24.S.1.44**
Erhvervsområde Henter registrets geometri … $.plan
```
 {  "zone": {  "status": "byzone",  "kilde": "zonekort",  "kommune": {  "kode": 101,  "navn": "København"  },  "konflikt": false  },  "har_lokalplan": true,  "lokalplaner": [  {  "plannr": "208",  "navn": "d'Angleterre",  "status": "vedtaget",  "anvendelse": null,  "dokument_url": "https://dokument.plandata.dk/20_1072552_APPROVED_1202814356214.pdf",  "bebyggelsesprocent": null,  "max_etager": null,  "max_hoejde_m": null,  "ved_punkt": true  },  // … 1 mere  ],  "kommuneplanramme": {  "rammenr": "R24.S.1.44",  "navn": "R24.S.1.44 - S",  "anvendelse": "Erhvervsområde",  "dokument_url": "https://dokument.plandata.dk/11_11347088_1737715824963.pdf",  "bebyggelsesprocent": null  },  "omfang": "grund",  "zoner_paa_grunden": [  "byzone"  ],  "andre_kommuneplanrammer": [],  "restbyggeret": {  "vejledende": true,  "restbyggeret_m2": 7756,  "tilladt_etageareal_m2": 18499,  "grundlag": {  "kilde": "delomraade",  "plan_id": 1072950,  "plannr": "208",  "delnr": "I",  "bebyggelsesprocent": 690,  "beregnes_af": "Den enkelte ejendom"  },  "grundareal_m2": 2681,  "antal_jordstykker": 1,  "eksisterende_etageareal_m2": 10743,  "eksisterende_bebygget_areal_m2": 2518,  "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."  }  }
``` ```
curl "https://api.grundfast.dk/v1/plan/ejendom/6010136" \
  -H "Authorization: Bearer $GRUNDFAST_API_KEY"
``` svarede efter 807 ms i sammensætningen[Mere om Plandata →](https://grundfast.dk/plandata-api?bfe=6010136)
- AdresserDAR3 adresser · Hovedvagtsgade 3 m.fl.Alle adgangsadresser på samme BFE
- MatriklenGeodatastyrelsenMatr.nr. 369 · 2.681 m²Købmager Kvarter, København
- BBRBygnings- og BoligregistretOpført 1755 · hotel 13.507 m² erhverv3 bygninger i BBR
- Bygnings­polygonerGeoDanmark2 omrids tegnet2 af BBR’s bygninger har intet omrids · 1 omrids uden BBR-bygning
- Terræn og højderDHMHøjeste del 26,9 m over terræn · terræn 4,7 m o.h.1 af 2 bygninger målt
- ByggelinjerNaturbeskyttelses­lovenIngen af de 10 linjer gælder
- JordforureningRegionerne · kommunerneIkke kortlagt forureningOmrådeklassificeret byjord
- StøjMiljøstyrelsen70–74 dB ved adresserneVejtrafik, Lden · grunden kan et sted ligge højere · kortlægning 2017
- Ejendoms­vurderingVurderingsstyrelsen361 mio. kr (2020)Heraf grundværdi 83,0 mio. kr
- DAGIAdministrative grænserKøbenhavn Kommune · Region HovedstadenHelligånds Sogn
- StednavneDanske StednavneKongens Nytorv · 109 m væk10 stednavne inden for 400 m
- LuftfotoKlimadatastyrelsenOrtofoto under planenEget kald pr. kortflise · alle årgange

Vis alle 13 registre

[GET /v1/demo/property?bfe=6010136](https://grundfast.dk/v1/demo/property?bfe=6010136)1 kald · 13 registre · fra cache på 4 ms · sammensat kl. 02.44 på 811 ms · seneste gode kopi

Zone

Byzone

Byggeri følger lokalplan, kommuneplan og bygningsreglementet.

- Lokalplan 208· gælder grunden d'Angleterre Plandata bærer ingen tal for bebyggelsen — de står i planens tekst. [Læs planen (PDF) →](https://dokument.plandata.dk/20_1072552_APPROVED_1202814356214.pdf)
- Lokalplan 152· en del af grunden Strøget **Anvendelse**
Erhvervsområde [Læs planen (PDF) →](https://dokument.plandata.dk/20_1072497_1567693956347.pdf)
- Kommuneplanramme R24.S.1.44 **Anvendelse**
Erhvervsområde Binder kommunens planlægning, ikke grundejeren direkte. [Læs planen (PDF) →](https://dokument.plandata.dk/11_11347088_1737715824963.pdf)

Restbyggeret · vejledende

Ca. 7.756 m² etageareal tilbage

690 % af 2.681 m² grund giver 18.499 m²; BBR registrerer 10.743 m² etageareal i dag. Procenten er fra delområde I i lokalplan 208.

Tilladt

Bygget (BBR)

2 bygninger uden etageareal i BBR er ikke talt med. Bygningsreglementet afgør, hvad der tæller som etageareal (kældre, carporte, udhuse), og planens tekst går forud. Spørg kommunen før et projekt.

På planen: zonen som flade, lokalplaner med fuld streg og deres nummer, delområder stiplet, kommuneplanrammer prikket. Det, der rammer grunden, står stærkest — peg på en plan her, så lyser den på kortet.

Hvad du får

## Planerne, som registret siger dem — og intet, det ikke siger

### Vedtaget, forslag og aflyst hver for sig

`status`

Status læses fra registret, ikke fra planens navn — i Ringsted hedder en vedtaget plan bogstaveligt “Forslag til lokalplan 328”. Aflyste planer står i en liste for sig.

### Landzone siges, ikke gættes

`zone.kilde: "afledt"`

Zonekortet rummer kun by- og sommerhusområder. Landzone er resten (§ 34), og svaret siger, at det er afledt. Til havs svarer vi 404.

### Planens PDF følger med

`dokument_url`

Hver plan peger på sin PDF hos Plandata. Det er den, der afgør — tallene i svaret er registrets uddrag af den.

### “Ingen lokalplan” kommer aldrig af en fejl

`502, aldrig tom`

Kan Plandata ikke nås, er et lag tomt, eller er svaret afkortet, får du 502. En tom liste er altid et målt svar.

Prøv det

## Kald demoen — uden nøgle

Demo-endpointet svarer med et rigtigt opslag: en villagrund i Silkeborg i byzone, uden lokalplan, under en kommuneplanramme på 30 % — og restbyggeretten regnet fra BBR og Matriklen for samme ejendom.

GET/v1/demo/plan

Solbakkevej 70, Silkeborg · byzone · ramme 10-B-41 · restbyggeret vejledende

svar hentet 1. oktober 2026

```
{
  "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"
  }
}
```

Vis hele svaret (120 linjer)

Med din egen nøgle: `GET /v1/plan/ejendom/:bfe`

[Kom i gang gratis](https://grundfast.dk/dashboard?mode=register)

Kald det

## Et koordinat eller et BFE ind, planerne ud

Koordinat-opslaget giver zone og planer. BFE-opslaget slår op inde på ejendommens største jordstykke og lægger restbyggeretten oveni. Samme `gf_live_`-nøgle og metering som de øvrige registre.

```
# På et koordinat
curl -H "Authorization: Bearer gf_live_…" \
  "https://api.grundfast.dk/v1/plan?lon=12.373631&lat=55.791429"

# På en ejendom — med vejledende restbyggeret
curl -H "Authorization: Bearer gf_live_…" \
  "https://api.grundfast.dk/v1/plan/ejendom/5651067"
```

Reference

## Felterne i svaret

| Felt | Type | Betydning |
| --- | --- | --- |
| zone | object | byzone, sommerhusomraade eller landzone. kilde: "zonekort" når et polygon dækker punktet, "afledt" for landzone — zonekortet rummer kun by- og sommerhusområder, og planlovens § 34 gør resten til landzone. |
| har_lokalplan | boolean | Om mindst én VEDTAGET lokalplan dækker punktet. Et målt svar — en fejl giver 502, aldrig false. |
| lokalplaner[] | object[] | Vedtagne og forslag: plannr, navn, status, anvendelse, datoer, dokument_url (planens PDF) og bebyggelse (bebyggelsesprocent, beregnes_af, max_etager, max_hoejde_m). |
| delomraader[] | object[] | Lokalplanens delområder ved punktet — ofte dér bebyggelsesprocenten står. |
| kommuneplanrammer[] | object[] | Rammer fra kommuneplan og kommuneplantillæg: rammenr, anvendelse, nuværende og fremtidig zone, bebyggelse. |
| aflyste_lokalplaner[] | object[] | Lokalplaner ved punktet, der er aflyst, bortfaldet eller tilbagetrukket — holdt adskilt fra dem, der gælder. |
| restbyggeret | object \| null | Kun på /v1/plan/ejendom/:bfe. Vejledende: tilladt etageareal minus eksisterende, med alle input ekkoet — eller null med årsagen i ikke_beregnet. |

Kanttilfælde: afledt landzone, ingen restbyggeret, 404 og 502 Svar ud over det normale, som API’et skriver dem

```
# Ingen zonekort-polygon: landzone efter planlovens § 34 — og det står i svaret:
GET /v1/plan?lon=11.9&lat=55.6
→ 200  { zone: { status: "landzone", kilde: "afledt",
                 kommune: { kode: 350, navn: "Lejre" } },
         har_lokalplan: false, lokalplaner: [] }

# Bebyggelsesprocenten gælder området som helhed — ingen restbyggeret pr. grund:
GET /v1/plan/ejendom/{bfe}
→ 200  { restbyggeret: { restbyggeret_m2: null,
           ikke_beregnet: "Bebyggelsesprocenten beregnes for området som helhed, …" } }

# Punktet ligger uden for alle kommuner (på havet):
→ 404  { error: "no kommune covers this point …" }   # ALDRIG "landzone"

# Plandata kan ikke nås, eller et lag er tømt:
→ 502  { error: "upstream Plandata (plandata.dk WFS) error" }   # ALDRIG "ingen lokalplan"
```

Sådan regnes restbyggeretten Og hvornår den ikke regnes

`restbyggeret_m2 = bebyggelsesprocent / 100 × grundareal_m2 − eksisterende_etageareal_m2`. Procenten tages fra den mest specifikke vedtagne plan — delområde, så lokalplan, så kommuneplanramme; et forslag bruges aldrig. Grundarealet er summen af Matriklens registrerede arealer, etagearealet BBR’s samlede bygningsareal. Bygninger uden registreret etageareal (typisk carporte og udhuse) tælles og nævnes, men regnes ikke med.

Tallet er null med en årsag, når procenten gælder området som helhed, er 0, når to vedtagne planer er uenige, når den gælder det enkelte jordstykke på en ejendom med flere, eller når BBR ikke kunne læses. Et tal på forkert grundlag ville ligne en byggeret — derfor intet tal.

Hvem bruger det

## Før skitsen, i købsaftalen, i desk studyet

- [Projektudviklere og arkitekter Første filter på en grund: zone, lokalplan, bebyggelsesprocent og hvad der er tilbage at bygge.](https://grundfast.dk/loesninger/projektudvikling)
- [Investorer og due diligence Hvilke planer binder ejendommen, og er der et forslag på vej, der ændrer den?](https://grundfast.dk/loesninger/due-diligence)
- [Rådgivere Planforholdene i desk studyet, med planens PDF vedlagt.](https://grundfast.dk/loesninger/miljoe-og-geoteknik)

Spørgsmål

## Ofte stillede spørgsmål

### Hvor kommer data fra?

Fra Plandata.dk, Plan- og Landdistriktsstyrelsens register over kommunernes planer. Ét opslag læser ni lag på én gang: kommuneplanen (for kommunen), zonekortet, vedtagne, foreslåede og aflyste lokalplaner, lokalplanernes delområder i vedtaget og forslag, og kommuneplanrammerne inklusive dem, der er ændret ved kommuneplantillæg.

### Hvordan ved I, at punktet ligger i landzone?

Zonekortet rummer kun byzone og sommerhusområder — vi har talt det: ingen landzone-polygoner. Efter planlovens § 34 er alt andet landzone. Ligger punktet uden for begge, svarer vi derfor landzone med kilde: "afledt", og først efter at have tjekket, at zonekortet faktisk svarer med indhold. Ligger punktet uden for alle kommuner — på havet — svarer vi 404, ikke landzone.

### Kan "ingen lokalplan" komme af en fejl?

Nej. Om der er en lokalplan, afgør hvordan kommunen behandler et projekt, så har_lokalplan: false og en tom liste kommer kun af et opslag, der lykkedes. Nedetid, et svar der ikke er JSON, et afkortet svar og et lag, der pludselig er tomt, giver alle 502.

### Hvad er forskellen på vedtaget, forslag og aflyst?

Status står i registret, og vi læser den derfra — ikke fra planens navn eller datoer. Et forslag binder ikke endnu, men fortæller hvad der er på vej; det står ved siden af de vedtagne planer, med vedtagne først. Aflyste, bortfaldne og tilbagetrukne lokalplaner ligger i en liste for sig, så de aldrig læses som gældende.

### Hvad er restbyggeretten, og hvor meget kan jeg stole på den?

Den er vejledende. På `/v1/plan/ejendom/:bfe` tager vi bebyggelsesprocenten fra den mest specifikke vedtagne plan (delområde, så lokalplan, så kommuneplanramme), ganger med grundarealet fra Matriklen og trækker BBR’s samlede bygningsareal fra. Alle input står i svaret. Bygningsreglementets regler for, hvad der tæller med i etagearealet — kældre, carporte, udhuse — kan ikke læses af registrene, og planens tekst er altid det, der afgør sagen.

### Hvornår beregner I ikke en restbyggeret?

Når grundlaget ikke tillader et tal pr. ejendom: hvis bebyggelsesprocenten gælder området som helhed, hvis den er 0 (Plandata bruger 0 både for intet byggeri og for ikke angivet), hvis to vedtagne planer på samme niveau er uenige, hvis procenten gælder det enkelte jordstykke og ejendommen har flere, eller hvis BBR ikke kunne læses. Så er restbyggeret_m2 null, og ikke_beregnet siger hvorfor.

### Binder kommuneplanrammen min grund?

Ikke direkte — rammen binder kommunens planlægning, mens lokalplanen binder grundejeren. Er der ingen lokalplan, kan svaret bruge rammens bebyggelsesprocent til restbyggeretten, men forbeholdet siger det højt.

### Hvilke koordinater sender jeg, og hvad koster et opslag?

lon/lat i WGS84; DAWA-stilen x/y med srid=4326 eller 25832 virker også. BFE-varianten slår planerne op i et punkt, der garanteret ligger inde på ejendommens største jordstykke. Et opslag er ét kald — også BFE-varianten, selvom den læser tre registre.

Se også

- [Byggelinje-API Naturbeskyttelseslinjerne ved samme koordinat](https://grundfast.dk/byggelinjer-api)
- [BBR-API Bygningerne bag det eksisterende etageareal](https://grundfast.dk/bbr-api)
- [Matrikel-API Jordstykket og grundarealet bag BFE-nummeret](https://grundfast.dk/matrikel-api)
- [Områdeklassificering-API Jordforureningen ved samme koordinat](https://grundfast.dk/omraadeklassificering-api)

Plandata-API

## Zone og lokalplan på et koordinat — med restbyggeret pr. ejendom

Opret en gratis nøgle og send dit første koordinat. Samme nøgle giver BBR, matrikel, byggelinjer og jordforurening.

[Kom i gang gratis](https://grundfast.dk/dashboard?mode=register) [Se dokumentationen](https://grundfast.dk/docs/api/plan)

Gratis op til 5.000 kald/md · intet kreditkort · data fra Plandata.dk
