# Slå planer op på et punkt

`GET /v1/plan` · Plandata

Zone, lokalplaner, delområder og kommuneplanrammer på et koordinat, fra kommunernes planer i Plandata.dk.

Ét opslag læser ni lag i Plandata på én gang: kommuneplanen (for kommunen), zonekortet, vedtagne, foreslåede og aflyste lokalplaner, delområder og kommuneplanrammer — inklusive rammer ændret ved kommuneplantillæg.

Status (`vedtaget`, `forslag`, `aflyst`) læses fra registret, ikke fra planens navn eller datoer. Et forslag binder ikke endnu, men står med, så du kan se hvad der er på vej. Planens tekst — PDF’en i `dokument_url` — er altid det, der afgør.

Tomme lister og landzone er målte svar: lagene svarede, og intet dækker punktet. Ligger punktet uden for alle kommuner (på havet), svarer endpointet 404 i stedet for landzone.

**Godkendelse:** `Authorization: Bearer gf_live_…` (eller `gf_test_…`)

**Afregning:** Ét kald.

## Parametre

| Navn | Placering | Type | Påkrævet | Beskrivelse |
| --- | --- | --- | --- | --- |
| `lon` | query | number | nej | Længdegrad i WGS84 (decimalgrader). Påkrævet, medmindre `x` og `y` er sendt. |
| `lat` | query | number | nej | Breddegrad i WGS84 (decimalgrader). Påkrævet, medmindre `x` og `y` er sendt. |
| `x` | query | number | nej | DAWA-kompatibel østkoordinat eller længdegrad, sammen med `y` og `srid`. |
| `y` | query | number | nej | DAWA-kompatibel nordkoordinat eller breddegrad, sammen med `x` og `srid`. |
| `srid` | query | string | nej | Koordinatsystem for `x`/`y`: `4326` (WGS84) eller `25832` (ETRS89/UTM32N i meter). |

## Eksempel

```bash
curl "https://api.grundfast.dk/v1/plan?lon=12.373631&lat=55.791429" \
  -H "Authorization: Bearer $GRUNDFAST_API_KEY"
```

## Svar (200)

```json
{
  "punkt": {
    "lon": 9.5328657,
    "lat": 56.1578621
  },
  "epsg25832": [
    533097.89,
    6223777.27
  ],
  "bfe_nummer": null,
  "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": null,
  "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"
  }
}
```

## Vigtige felter

| Felt | Type | Betydning |
| --- | --- | --- |
| `zone.status` | string \| null | `byzone`, `sommerhusomraade` eller `landzone`. `null` kun når zonekortet har to forskellige zoner i punktet (`zone.konflikt: true`). |
| `zone.kilde` | string | `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_lokalplan` | boolean | 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[].bebyggelse` | object | `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`. |

## Fejl

| Status | Betydning |
| --- | --- |
| 400 | Koordinaten mangler, er ikke et tal, ligger uden for Danmark, eller `srid` er andet end 4326 og 25832. |
| 401 | Nøglen mangler eller er ugyldig. |
| 404 | Ingen kommune dækker punktet (på havet eller uden for Danmark). Der er ingen zone eller plan at rapportere. |
| 429 | Burst-grænsen eller månedskvoten er nået. Se `Retry-After`. |
| 502 | Plandata kunne ikke nås, svarede ubrugeligt, eller et af lagene var tomt. Rapporteres aldrig som landzone eller "ingen lokalplan". |
| 503 | Plandata-kilden er ikke konfigureret i dette miljø. |

> Restbyggeret kræver grundareal og bygninger og findes derfor kun på [`/v1/plan/ejendom/:bfe`](https://grundfast.dk/docs/api/plan-ejendom). Her er `restbyggeret` altid `null`.
