Hent BBR-data om bygning og bolig
Slå opførelsesår, areal, etager, anvendelse og opvarmning op for en adresse, og hent boligenhederne med værelser, køkken og bad.
Bygnings- og Boligregistret (BBR) beskriver hver bygning og hver bolig i Danmark: hvornår den er bygget, hvor stor den er, hvad den bruges til, og hvordan den varmes op. Det bruges til boligvurdering, forsikringstilbud, energirådgivning og udlejning.
To endpoints dækker det: /bbr for bygningen og /enhed for boligerne eller erhvervsenhederne i den. Begge ligger under /api/v1/enrich/ og kræver en almindelig live-nøgle.
Hvilket id skal du bruge?
| Endpoint | Tager | Returnerer |
|---|---|---|
GET /api/v1/enrich/adresser/{id}/bbr | adgangsadresse-id eller adresse-id | Hovedbygningen på adressen |
GET /api/v1/enrich/adresser/{id}/enhed | adgangsadresse-id | Alle enheder i opgangen |
GET /api/v1/enrich/adresser/{id}/enhed | adresse-id (med etage/dør) | Kun den ene enhed |
/bbr giver det samme svar for et adresse-id med etage og dør som for adgangsadressen, fordi bygningen hører til indgangen. Ukendte id'er giver 404 med koden not_found. Datavask og autocomplete returnerer begge id'er direkte (se Adresse eller adgangsadresse).
Bygningen
curl -s "https://api.danadresse.dk/api/v1/enrich/adresser/0a3f507f-0959-32b8-e044-0003ba298018/bbr" \ -H "X-Api-Key: $DANADRESSE_API_KEY"
{
"adresseid": "0a3f507f-0959-32b8-e044-0003ba298018",
"bygning": {
"id": "23e6f5c3-af8c-4700-bb1a-b23bb2107e04",
"bygningsnr": "1",
"opfoerelsesaar": 1968,
"ombygningsaar": 1992,
"samletBygningsareal": 5652,
"samletBoligAreal": null,
"samletErhvervsareal": 5652,
"bebyggetAreal": 2826,
"antalEtager": 2,
"antalBoliger": null,
"anvendelseKode": "321",
"anvendelseNavn": "Bygning til kontor",
"ydervaegKode": "1",
"tagKode": "2",
"varmeKode": "1",
"opvarmningsmiddelKode": null,
"stormraadetOversvoemmelse": null,
"stormflodRegistreret": false
},
"data_source": "BBR (Bygnings- og Boligregistret)",
"license": "CC BY 4.0 Klimadatastyrelsen"
}| Felt | Indhold |
|---|---|
opfoerelsesaar, ombygningsaar | Byggeår og år for seneste større ombygning |
samletBygningsareal, samletBoligAreal, samletErhvervsareal | Etageareal i m² |
bebyggetAreal | Bygningens fodaftryk på grunden i m² |
antalEtager, antalBoliger | Etager og boliger i bygningen |
anvendelseKode, anvendelseNavn | Hvad bygningen bruges til, som kode og tekst |
ydervaegKode, tagKode | Materialer, som BBR-koder |
varmeKode, opvarmningsmiddelKode, energiforsyningKode | Varmeinstallation og brændsel, som BBR-koder |
vandforsyningKode, afloebKode, fredningKode | Vand, kloak og fredning, som BBR-koder |
stormflodRegistreret | true, hvis bygningen har en registreret skadesag hos Stormrådet |
Kun anvendelsen har en tekst. De øvrige felter er rå koder fra BBR's kodelister, så du skal selv oversætte dem til tekst i din app.
Enhederne
curl -s "https://api.danadresse.dk/api/v1/enrich/adresser/0a3f507c-0624-32b8-e044-0003ba298018/enhed" \ -H "X-Api-Key: $DANADRESSE_API_KEY"
{
"adresseid": "0a3f507c-0624-32b8-e044-0003ba298018",
"antal_enheder": 6,
"enheder": [
{
"id": "760562d0-4ea6-4c94-94d7-506d12c4d0de",
"etage": "st",
"doer": "1",
"anvendelseKode": "322",
"boligtype": { "kode": "E", "navn": "Andet" },
"samletAreal": 83,
"arealBeboelse": null,
"arealErhverv": 83,
"antalVaerelser": 2,
"antalToiletter": 1,
"antalBadevaerelser": null,
"toilet": { "kode": "T", "navn": "Vandskyllende toilet i enheden" },
"bad": { "kode": "D", "navn": "Hverken badeværelse eller adgang til badeværelse" },
"koekken": { "kode": "H", "navn": "Ingen fast kogeinstallation" },
"udlejningKode": null,
"bygningId": "70f6f506-2c5b-408f-8e9c-32353f2e0be9"
}
]
}Enhederne er sorteret efter etage (kælder, stue, 1., 2. …) og dør. boligtype, toilet, bad og koekken har både kode og tekst. bygningId peger på den bygning, enheden ligger i.
I Python: fra adresse-id til bygning og bolig
import os import requests API = "https://api.danadresse.dk" s = requests.Session() s.headers["X-Api-Key"] = os.environ["DANADRESSE_API_KEY"] adresse_id = "0a3f50a4-0c39-32b8-e044-0003ba298018" # Strandvejen 100, 1., 2900 Hellerup r = s.get(f"{API}/api/v1/enrich/adresser/{adresse_id}/bbr", timeout=15) if r.status_code == 503: raise SystemExit(f"Registret er midlertidigt utilgængeligt, prøv igen om {r.headers.get('Retry-After')} s") r.raise_for_status() byg = r.json()["bygning"] if byg.get("_status"): print("Ingen BBR-bygning knyttet til adressen endnu") else: print(byg["anvendelseNavn"], byg["opfoerelsesaar"], byg["samletBygningsareal"], "m²") enheder = s.get(f"{API}/api/v1/enrich/adresser/{adresse_id}/enhed", timeout=15).json() for e in enheder["enheder"]: print(e["etage"], e["doer"], e["samletAreal"], "m²,", e["antalVaerelser"], "værelser")
Når data mangler
_status: needs_bbr_etlibygningbetyder, at der ikke er knyttet en BBR-bygning til adressen i vores kopi af registret. Alle felter er sånull._status: needs_bbr_enhed_etlpå/enhedbetyder, at der ikke er fundet enheder.enhederer en tom liste. Det kan også være korrekt: et skur eller en transformerstation har ingen boliger.- Enkelte felter er
null. BBR er ikke komplet. Ældre bygninger mangler ofte ombygningsår eller areal. Vis "ukendt" i stedet for 0. _truncated: truepå/enhedbetyder, at adressen har flere end 1000 enheder, og kun de første 1000 er med.
Flere bygninger på samme adresse
En adresse kan have flere bygninger: et hus med garage og udhus, eller et erhvervsområde med flere haller. /bbr returnerer hovedbygningen: en bygning med en egentlig anvendelse før garager, carporte og udhuse (anvendelseskode 900 og op), bygninger med data før tomme rækker, og derefter den største. Skal du se alle bygninger, så brug bygninger i GET /api/v1/enrich/adresser/{id}/ejendom (se Matrikel, jordstykke og BFE). Den liste har id, nummer, opførelsesår, areal, etager og anvendelse for hver bygning, med hovedbygningen først. Skal du bruge bygningen for en bestemt bolig, så tag den, som enheden i /enhed peger på via bygningId.
Nøgler og fejl
- Testnøgler får
403med kodensandbox_scope, og browsernøgler får403medbrowser_key_scope. Kald endpointet fra din server. /bbrog/enhedlæser fra vores egen kopi af BBR./ejendomog/installationshenter data fra Datafordeleren, når de kaldes, og kan svare503med kodenupstream_unavailableog enRetry-After-header under Datafordelerens servicevinduer.- Data fra BBR er under CC BY 4.0. Vis kildeangivelsen "Indeholder data fra Klimadatastyrelsen (CC BY 4.0)", når du viser data til brugere.
Næste skridt
- Matrikel, jordstykke og BFE-nummer
- Oversvømmelsesrisiko for en adresse
- Oversigt over BBR-data: BBR
Relaterede guides
Markdown-kilde Fejl i guiden? Skriv til os API-reference (Swagger)