# Lokalplanens ord med sidetal

`GET /v1/plan/ejendom/:bfe/citater` · Plandata

De afsnit i lokalplanens PDF, der handler om solceller, tag, højde, bebyggelsesprocent eller farver — ordret og med sidetal.

For hver lokalplan og hvert delområde med egen PDF, der dækker ejendommen, henter vi planens PDF fra Plandata.dk, læser teksten side for side og samler de afsnit, der handler om de emner, du beder om. Afsnittene gengives ordret — kun linjeskift og orddeling er samlet — med `side` (siden i PDF-filen), den nærmeste paragraf over (`afsnit`, fx `§ 7.10`) og et `link`, der åbner PDF’en på siden.

En scannet plan har intet tekstlag og kan ikke gennemsøges. Så er `tekstlag` `"nej"` og der er ingen citater — det betyder ikke, at planen intet siger. Er kun nogle sider scannet (kortbilag), er `tekstlag` `"delvis"`, og `sider_uden_tekst` siger hvilke.

Svaret gemmes pr. PDF (SHA-256), så samme plan læses én gang for alle ejendomme i den.

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

**Afregning:** Ét kald — også når ejendommen ligger i flere lokalplaner.

## Parametre

| Navn | Placering | Type | Påkrævet | Beskrivelse |
| --- | --- | --- | --- | --- |
| `bfe` | path | integer | ja | BFE-nummeret på ejendommen. |
| `emner` | query | string | nej | Kommasepareret: `solceller`, `tagmateriale`, `tagform`, `reflekterende`, `hoejde`, `bebyggelsesprocent`, `farver`. Udeladt: alle. |

## Eksempel

```bash
curl "https://api.grundfast.dk/v1/plan/ejendom/9519007/citater?emner=solceller,tagform" \
  -H "Authorization: Bearer $GRUNDFAST_API_KEY"
```

## Svar (200)

```json
{
  "bfe_nummer": 9519007,
  "emner": [
    "solceller",
    "tagmateriale",
    "tagform",
    "reflekterende"
  ],
  "antal": 1,
  "planer": [
    {
      "plan_id": 10474743,
      "plannr": "2020-10",
      "navn": "Turist- og begivenhedsdestination, Egeskov Slot",
      "status": "vedtaget",
      "dokument_url": "https://dokument.plandata.dk/20_10474743_1617784575173.pdf",
      "status_laesning": "ok",
      "sha256": "9891694278d45c9a1d14004eb41b4ac841d64204a765b9fb3e84ff72afc98424",
      "sider": 38,
      "tekstlag": "delvis",
      "sider_uden_tekst": [
        1,
        6,
        29,
        32,
        33,
        34,
        35,
        38
      ],
      "citater": [
        {
          "emne": "solceller",
          "side": 24,
          "afsnit": "§ 7.10",
          "tekst": "§ 7.10 Solfangere/solceller på bygningens tage må kun opsættes efter følgende retningslinjer: • de må ikke være reflekterende. • de skal lægges på tagfladen og være parallelle med tagfladen. • de skal placeres, så de udgør ét samlet rektangel. • de skal placeres, så elementer som ovenlysvinduer, udluftningshætter mv. ikke bryder solpanel/solcelle fladen. • de skal placeres på tagflader der ikke vender mod slottet/voldgraven.",
          "traeffere": [
            "Solfangere",
            "solceller",
            "solpanel",
            "solcelle"
          ],
          "link": "https://dokument.plandata.dk/20_10474743_1617784575173.pdf#page=24"
        },
        {
          "emne": "tagmateriale",
          "side": 23,
          "afsnit": "§ 7.5",
          "tekst": "§ 7.5 Tagbeklædningen må ikke udføres i reflekterende materialer med et glanstal på over 5. Drivhuse/orangerier/ udstillingsbygninger med glastag er undtaget bestemmelsen om glanstal.",
          "traeffere": [
            "Tagbeklædningen"
          ],
          "link": "https://dokument.plandata.dk/20_10474743_1617784575173.pdf#page=23"
        },
        {
          "emne": "tagform",
          "side": 22,
          "afsnit": "Ad. § 6.5",
          "tekst": "… Der gives mulighed for op til 16 m i højden i byggefelt 3A, fordi der her kan etableres lagerfaciliteter, udstillingshaller mv. som er store bygningskroppe, som med sadeltag bliver høje. Det er sammen med de øvrige store bygningskroppe, så disse ikke spredes unødigt. Tagene i byggefelterne 4A og 5A må ikke gives en højde der overstiger tagryggen på de omkransende bygninger. Tagenes tagfod skal være under tagfod på de omkransende bygninger. jf. § 6.4. Bestemmelsen skal sikre at byggeri i disse byggefelter underordner sig de øvrige bygninger i miljøet og fremstår med lethed og transparens i forh …",
          "traeffere": [
            "sadeltag"
          ],
          "link": "https://dokument.plandata.dk/20_10474743_1617784575173.pdf#page=22"
        },
        {
          "emne": "reflekterende",
          "side": 23,
          "afsnit": "§ 7.5",
          "tekst": "§ 7.5 Tagbeklædningen må ikke udføres i reflekterende materialer med et glanstal på over 5. Drivhuse/orangerier/ udstillingsbygninger med glastag er undtaget bestemmelsen om glanstal.",
          "traeffere": [
            "reflekterende",
            "glanstal"
          ],
          "link": "https://dokument.plandata.dk/20_10474743_1617784575173.pdf#page=23"
        }
      ]
    }
  ],
  "struktureret": {
    "solceller": [],
    "tagmateriale": [],
    "tagform": [],
    "reflekterende": []
  },
  "forbehold": "Citaterne er fundet automatisk ved ordsøgning i planens tekst og gengivet ordret. De er en læsevejledning, ikke en juridisk gennemgang: en bestemmelse kan være uddybet andre steder i planen eller på kortbilag. Læs planen i sammenhæng, og spørg kommunen ved tvivl.",
  "meta": {
    "kilde": "Plandata.dk (planernes PDF) via Grundfast",
    "grundfast_version": "0.1.0"
  }
}
```

## Vigtige felter

| Felt | Type | Betydning |
| --- | --- | --- |
| `planer[].citater[]` | object[] | `emne`, `side`, `afsnit`, `tekst` (ordret; lange afsnit klippes omkring træffet med …), `traeffere` (de ord, der matchede) og `link` (`dokument_url#page=N`). Højst 12 pr. emne pr. plan. |
| `planer[].tekstlag` | 'ja' \| 'delvis' \| 'nej' \| null | Hvor meget af PDF’en der kunne gennemsøges. `nej` = scannet uden tekst: læs PDF’en selv. `null`, når PDF’en ikke kunne læses (se `status_laesning`). |
| `planer[].status_laesning` | string | `ok`, `utilgaengelig` (Plandata svarede ikke), `for_stor` (over 40 MB) eller `ulaeselig` (ikke en læsbar PDF). |
| `planer[].sha256` | string \| null | Fingeraftryk af den PDF, der blev læst — det svaret er gemt under. |
| `struktureret` | object | Pr. emne de felter på [`/v1/plan/ejendom/:bfe`](https://grundfast.dk/docs/api/plan-ejendom), der også svarer på det — `bebyggelse.max_hoejde_m` for højde, `bebyggelse.bebyggelsesprocent` for bebyggelsesprocent. Citaterne er planens tekst ved siden af tallene. For tagform, materialer, farver og solceller har registret intet felt (`[]`), så teksten er eneste kilde. |
| `forbehold` | string | Altid med: citaterne er fundet ved ordsøgning og er en læsevejledning, ikke en juridisk gennemgang. Vis det sammen med citaterne. |

## Fejl

| Status | Betydning |
| --- | --- |
| 400 | BFE-nummeret er ikke et positivt heltal, eller et emne er ukendt. |
| 401 | Nøglen mangler eller er ugyldig. |
| 404 | BFE-nummeret findes ikke i Matriklen, eller ejendommen har ingen jordstykkegeometri. |
| 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ø. |

> Citaterne peger på, hvor i planen der skal læses — de er ikke en fortolkning. En bestemmelse kan være uddybet i redegørelsen eller på et kortbilag. Spørg kommunen ved tvivl.
