Danish addresses, and the whole property behind them
One API over the Danish national registers. Resolve an address, then read the buildings, parcel, public valuation, terrain, soil classification and protection lines of the property behind it — codes translated, records joined, geometry in WGS84.
The dashboard is in Danish; the API reference is in English, and response fields use the registers’ own Danish names.
One property, every register
Nyhavn 20, 1051 København K
- BBRBuildings
- 3 buildings · 12 units · built 1845
- BBRHeritage
- Building 1 is listedfredet: true
- BBRRoof, building 2
- Fibre cement, may contain asbestostag: "Fibercement herunder asbest"
- MatriklenParcel
- 759 m² · no. 280
- VurderingPublic valuation 2020
- DKK 50,000,000
- DHMHeight
- 19.3 m roof · 2.5 m terrain
- JordSoil
- Classified — soil must be analysed before it is movedanalysekrav: "Område med krav om analyser"
- ByggelinjerProtection lines
- 10 checked · none apply
/v1/demo/propertyCaptured 24 Sept 2026Who builds on it
For teams that need the property, not just the address
Four jobs, and each one chains several registers — the joining is the part Grundfast does for you.
Environmental consultants
The desk study before an environmental or geotechnical site visit: construction year and roof material for asbestos screening, soil classification, protection lines and terrain.
BBRJordforureningByggelinjerDHMInvestors and due-diligence teams
From an address to the property, its buildings and parcels, the public valuation series and the company behind a tenant or seller.
DARBBRMatriklenEjendomsvurderingCVRProptech and property platforms
Address autocomplete in the form, the property behind it in the product — with batch lookups for portfolios and signed webhooks when records change.
DARBBREjendomsvurderingAI agents
The same registers as read-only MCP tools on the same key, so an assistant can answer “what stands on this plot?” without a bespoke integration.
MCP
Coverage
13 registers, one key
All thirteen are in production, nationwide. Each is a documented REST endpoint and an MCP tool, and two derived layers sit on top.
Buildings and units
BBRUse, year built and rebuilt, floor areas, wall and roof material, heating — every code resolved to text.
/v1/bbr/ejendom/:bfeCadastral parcels
MatriklenParcel numbers, ejerlav and parcel geometry per property, reprojected to WGS84.
/v1/matrikel/ejendom/:bfePublic valuation
EjendomsvurderingProperty and land value with the full yearly series, as the tax authority assessed it.
/v1/vurdering/:bfeAddresses
DARAutocomplete, lookup by UUID, address washing and reverse geocoding.
/v1/adresse/searchCompanies
CVRName, status, legal form, industry and address by CVR number.
/v1/cvr/:cvrAdministrative areas
DAGIMunicipality, region, parish, court and police district for any point.
/v1/dagi/:tema/:kodeElevation
DHMTerrain height at any coordinate, and the measured height of each building.
/v1/dhm/punktPlace names
StednavneOfficial place names around a point, nearest first.
/v1/stednavne/punktSoil classification
JordforureningWhether a point lies in an area where soil must be analysed before it is moved (§ 50 a).
/v1/jord/omraadeklassificeringForest building line
NaturbeskyttelseThe 300 m forest line (§ 17) at a point, including where it has been lifted.
/v1/natur/skovbyggelinjeProtection lines
ByggelinjerTen coastal, lake, river, monument, church, dike and § 3 lines, each with a signed distance to its edge.
/v1/natur/byggelinjerZoning and local plans
PlandataZone, local plans, sub-areas and municipal plan frames at a point — with status, plan PDF and plot ratio; per property an indicative remaining floor area.
/v1/planRoad and rail noise
NoiseRoad, rail, airport and industry noise bands (Lden, Lnight) at a point from the national noise mapping, with the mapping year.
/v1/miljoe/stoejBuilding footprints
Layer · GeoDanmarkThe polygon of every building on a property, joined to its BBR record.
/v1/geodanmark/bygninger/:bfeAerial imagery
Layer · OrtofotoXYZ map tiles by flight year, with a retina variant for the same ground.
/v1/orto/tile/:z/:x/:yEvery endpoint, parameter and field
The OpenAPI 3.1 reference, in English — including the batch, GeoJSON, history and export variants of the endpoints above.
Integrate
The card above, from your own code
The same property, BFE 6033800, read from three registers with one key. The typed SDK retries transient failures for you.
Codes arrive as text
Use, materials and heating come back readable, with the code kept beside the text.
WGS84, current rows
Geometry reprojected from UTM 32N; superseded bitemporal versions filtered out.
One bearer key
No service users, no IP allowlist — the same key for REST and MCP.
A cache in front
Retries and a cached mirror, so an upstream outage stays upstream.
import { GrundfastClient } from '@grundfast/sdk'; const gf = new GrundfastClient({ apiKey: process.env.GRUNDFAST_API_KEY }); const bfe = 6033800; // Nyhavn 20, Copenhagen const [property, parcels, valuation] = await Promise.all([ gf.ejendom(bfe), gf.matrikel(bfe), gf.vurdering(bfe), ]); property.antal_bygninger; // 3 parcels.jordstykker[0]?.areal_m2; // 759 valuation.seneste?.ejendomsvaerdi_kr; // 50000000
Moving from another source
Moving off a retired API
Replacing DAWA
DAWA closed on 1 October 2026. Every address endpoint it served has a live equivalent here, and stored address IDs keep resolving.
Leaving the old Datafordeler services
The old services.datafordeler.dk shape — translated, joined, current — served from the new backend: a new base URL and a one-time field mapping.
Pricing
Metered per call, free to start
Prices in DKK a month, excluding VAT. Pay yearly and save 20%.
Free
0DKK / mo
5,000 calls included
Starter
99DKK / mo
100,000 calls included
Pro
249DKK / mo
500,000 calls included
Scale
599DKK / mo
2,000,000 calls included
Plans, annual prices and the Enterprise contract: see pricing.
FAQ
Questions international teams ask
No, but you will see some. The dashboard is in Danish; the API reference is in English, and response fields use the registers’ own Danish names. Code-list values arrive as the register’s own Danish text — “Tegl” rather than “clay tile” — because that is what matches official documents.
No. Grundfast is an independent service built on the official Danish registers, distributed by Datafordeler (Klimadatastyrelsen) under CC BY 4.0. We credit the source and charge for the work on top: translated code lists, joined records, WGS84 geometry, a cache in front of the upstream and support. Grundfast is not affiliated with Klimadatastyrelsen.
BFE (Bestemt Fast Ejendom) is the national identifier for a piece of real property. It ties buildings, units, parcels and the public valuation together, which is why most property endpoints are keyed on it. You get one from an address, from a coordinate via /v1/jordstykker/reverse, or from a parcel number.
Not personal owners. Ownership data for private individuals requires a legitimate-interest assessment under Danish data protection rules, and Grundfast does not expose it. Company data from CVR is available.
Register reads come from Datafordeler and the other official sources through a cache, so a response is at most as old as that register’s cache window, and a short upstream outage is usually absorbed rather than passed on. Point-in-time reads with ?asOf= return the record as it stood on a given date (Scale plan and up).
Yes. The Free plan needs no card, and a gf_test_ key is a sandbox on real data that is never billed — capped at its own monthly allowance, separate from your plan.
Start today
Build on Danish property data
gf_test_ key that is never billed, and upgrade when the traffic is real.Free up to 5,000 calls a month · no card · test keys never billed · data from Klimadatastyrelsen / Datafordeler, CC BY 4.0