API-dokumentation

Grundfast er et REST-API. Alle svar er JSON i UTF-8. Base-URL i produktion: https://api.grundfast.dk.

Kom i gang

Hent en nøgle i dashboardet og kald et endpoint. De fleste endpoints kræver en nøgle; demo- og kodeliste-endpoints er åbne.

curl https://api.grundfast.dk/v1/bbr/ejendom/5651067 \
  -H "Authorization: Bearer gf_live_…"

Autentificering

Send din nøgle som bearer-token. Nøgler har præfiks gf_live_ eller gf_test_.

Authorization: Bearer gf_live_…

Endpoints

GET/v1/bbr/ejendom/:bfe

Hele ejendommen for et BFE — grund + alle bygninger (oversat, joinet).

nøgle
GET/v1/bbr/ejendom/:bfe/geojson

WFS-compat FeatureCollection — én Feature pr. bygning, WGS84.

nøgle
GET/v1/bbr/bygning?bfe=

Samme som ejendom, valideret query-param.

nøgle
GET/v1/matrikel/ejendom/:bfe

Matriklen — jordstykker + ejerlav (live: kommer; demo virker nu).

nøgle
GET/v1/kodeliste/:navn

En oversat kodeliste (kode → tekst), fx varmeinstallation.

åben
GET/v1/demo/ejendom

Offline-eksempel — mærk outputtet uden nøgle.

åben
GET/v1/demo/ejendom.geojson

Offline WFS-compat GeoJSON-eksempel.

åben

TypeScript-SDK

Fuldt typet klient. Installer og kald — svaret er typecheckede objekter.

bun add @grundfast.dev/sdk   # eller: npm i @grundfast.dev/sdk
import { GrundfastClient } from '@grundfast.dev/sdk';

const gf = new GrundfastClient({ apiKey: 'gf_live_…' });

const ejendom = await gf.ejendom(5651067);
console.log(ejendom.jordstykke.ejerlav_navn);
console.log(ejendom.bygninger.length, 'bygninger');

Svar-format

Et BFE giver én ejendom med alle bygninger. Hver bygning har oversatte koder, arealer, materialer, varme, geometri (WGS84) og enheder.

{
  "type": "ejendom",
  "bfe_nummer": 5651067,
  "grund_id": "000000b1-…",
  "kommunekode": "0740",
  "jordstykke": {
    "matrikelnummer": null,
    "ejerlav_kode": null,
    "ejerlav_navn": null
  },
  "antal_bygninger": 3,
  "bygninger": [
    {
      "type": "bygning",
      "anvendelse": { "kode": "120", "tekst": "Fritliggende enfamiliehus" },
      "opfoerelsesaar": 1958,
      "areal": { "bebygget_m2": 116, "samlet_boligareal_m2": 95 },
      "materialer": { "ydervaeg": { "tekst": "Mursten" }, "tag": { "tekst": "Tegl" } },
      "varme": { "installation": { "tekst": "Fjernvarme/blokvarme" } },
      "geometri": { "type": "Point", "coordinates": [10.32, 56.16] },
      "enheder": [ { "anvendelse": { "tekst": "…" }, "antal_vaerelser": 4 } ]
    }
  ]
}

Fejl

Fejl returneres som { "error": "…" } med en passende HTTP-status.

401  manglende / ugyldig API-nøgle
404  ukendt BFE
429  månedlig free-tier-kvote opbrugt
502  upstream Datafordeler-fejl (efter retry)
503  upstream ikke konfigureret (fx live Matriklen)