Danish property and address data, in one API
Grundfast serves the Danish national registers — buildings, units, cadastral parcels, addresses and companies — through a single REST API with a bearer token. Code lists arrive translated, names re-joined, geometry in WGS84, and the whole thing sits behind a cached mirror so an upstream outage is not your outage.
What you get in one call
Look a property up by its BFE number and the buildings, units and parcels come back together. Not three requests against three registers, joined by you.
curl -H "Authorization: Bearer gf_live_..." \ "https://api.grundfast.dk/v1/bbr/ejendom/1304503"
Why this exists
The property, not just the address
One call on a BFE number returns the whole property — buildings, units, parcels and ejerlav in a single data model. Address-only APIs stop at the front door.
Codes already translated
Datafordeler returns numeric code lists and split names. Grundfast resolves them, re-joins the names and serves current-only rows, which is the shape the old services.datafordeler.dk had.
An SLA mirror over a flaky upstream
Datafordeler runs at roughly 90% uptime and flaps 401s. Grundfast retries, backs off and serves from a cache, so your checkout does not inherit their bad afternoon.
Point-in-time history
Add ?asOf=<date> to read a property or address as it stood then — useful when a case has to be reconstructed after the fact.
Registers live today
All seven are in production. Each one is a documented REST surface and an MCP tool.
| Register | Covers | Detail |
|---|---|---|
| BBR | Buildings and units | Floor area, year built, use, materials, heating — code lists resolved to text. |
| Matriklen | Cadastral parcels | Jordstykker and ejerlav names, joined to the property and reprojected to WGS84. |
| DAR | Addresses | Lookup by UUID, autocomplete, address washing and reverse geocoding. |
| CVR | Companies | Name, status, legal form, industry and location by CVR number. |
| DAGI | Administrative geography | Municipalities, regions and postal districts as clean GeoJSON. |
| DHM | Elevation | Terrain and surface height at a coordinate (DTM/DSM). |
| Stednavne | Place names | Official Danish place names near a coordinate, nearest first. |
Migrating off DAWA
DAWA (Danmarks Adressers Web API) closes on 1 October 2026 at 10:00. Every address surface it exposed has a live Grundfast equivalent — repoint the base URL to https://api.grundfast.dk/v1 and add a bearer key.
The full endpoint-by-endpoint mapping is on the DAWA replacement page.
For AI agents
Grundfast exposes a Model Context Protocol server at POST /mcp with one tool per register, so an agent can resolve an address, pull a BBR rollup or check a CVR number without a bespoke integration. It is published in the official MCP registry as dk.grundfast/danish-address-property-data. Authentication and metering are identical to REST.
Start before the shutdown
Create a free key, point your base URL at /v1, and keep the response shape your integration already expects.
See also
Frequently asked questions
Is Grundfast an official Danish government API?
No. Grundfast is an independent compatibility layer over Datafordeler (SDFI / Klimadatastyrelsen). The underlying data comes from the official Danish registers and is CC BY 4.0 — we credit the source and sell the transformation, the stability and the SLA on top of it. Grundfast is not affiliated with or operated by SDFI.
Do I need to speak Danish to use the API?
No. Endpoint paths and many field names use Danish register terminology, because that is what the registers are called and renaming them would make the data harder to match against official sources. The documentation, the OpenAPI spec and the TypeScript SDK are usable without Danish, and the code lists are resolved to readable values.
What is a BFE number?
BFE (Bestemt Fast Ejendom) is the Danish national identifier for a distinct piece of real property. It is the key that ties buildings, units and cadastral parcels together, which is why Grundfast uses it as the primary lookup for property data. You can get one from an address or from a coordinate.
How is this priced?
Self-serve, metered per call: a free tier, then Starter, Pro and Scale. Test keys (gf_test_) are never billed, so you can build against a sandbox before committing. Annual Enterprise contracts are available for higher volume and support commitments.
Can AI agents call it directly?
Yes. Grundfast runs a Model Context Protocol (MCP) server at POST /mcp with one tool per register, authenticated with the same gf_ bearer key and metered like REST. It is listed in the official MCP registry as dk.grundfast/danish-address-property-data.