[DAWA closed 1 Oct · the 5-minute fix](https://grundfast.dk/en/dawa-replacement)

# 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.

[Get started free](https://grundfast.dk/dashboard?mode=register) [Read the API reference →](https://grundfast.dk/docs/api)

The dashboard is in Danish; the API reference is in English, and response fields use the registers’ own Danish names.

[Læs denne side på dansk](https://grundfast.dk/)

One property, every register

Nyhavn 20, 1051 København K

BFE 6033800

**BBR Buildings**

3 buildings · 12 units · built 1845

**BBR Heritage**

Building 1 is listed fredet: true

**BBR Roof, building 2**

Fibre cement, may contain asbestos tag: "Fibercement herunder asbest"

**Matriklen Parcel**

759 m² · no. 280

**Vurdering Public valuation 2020**

DKK 50,000,000

**DHM Height**

19.3 m roof · 2.5 m terrain

**Jord Soil**

Classified — soil must be analysed before it is moved analysekrav: "Område med krav om analyser"

**Byggelinjer Protection lines**

10 checked · none apply

Real response · `/v1/demo/property` Captured 24 Sept 2026

Who 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. BBR Jordforurening Byggelinjer DHM
- ### Investors 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. DAR BBR Matriklen Ejendomsvurdering CVR
- ### Proptech 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. DAR BBR Ejendomsvurdering
- ### AI 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
BBR Use, year built and rebuilt, floor areas, wall and roof material, heating — every code resolved to text. `/v1/bbr/ejendom/:bfe`
- ### Cadastral parcels
Matriklen Parcel numbers, ejerlav and parcel geometry per property, reprojected to WGS84. `/v1/matrikel/ejendom/:bfe`
- ### Public valuation
Ejendomsvurdering Property and land value with the full yearly series, as the tax authority assessed it. `/v1/vurdering/:bfe`
- ### Addresses
DAR Autocomplete, lookup by UUID, address washing and reverse geocoding. `/v1/adresse/search`
- ### Companies
CVR Name, status, legal form, industry and address by CVR number. `/v1/cvr/:cvr`
- ### Administrative areas
DAGI Municipality, region, parish, court and police district for any point. `/v1/dagi/:tema/:kode`
- ### Elevation
DHM Terrain height at any coordinate, and the measured height of each building. `/v1/dhm/punkt`
- ### Place names
Stednavne Official place names around a point, nearest first. `/v1/stednavne/punkt`
- ### Soil classification
Jordforurening Whether a point lies in an area where soil must be analysed before it is moved (§ 50 a). `/v1/jord/omraadeklassificering`
- ### Forest building line
Naturbeskyttelse The 300 m forest line (§ 17) at a point, including where it has been lifted. `/v1/natur/skovbyggelinje`
- ### Protection lines
Byggelinjer Ten coastal, lake, river, monument, church, dike and § 3 lines, each with a signed distance to its edge. `/v1/natur/byggelinjer`
- ### Zoning and local plans
Plandata Zone, 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/plan`
- ### Road and rail noise
Noise Road, rail, airport and industry noise bands (Lden, Lnight) at a point from the national noise mapping, with the mapping year. `/v1/miljoe/stoej`
- ### Building footprints
Layer · GeoDanmark The polygon of every building on a property, joined to its BBR record. `/v1/geodanmark/bygninger/:bfe`
- ### Aerial imagery
Layer · Ortofoto XYZ map tiles by flight year, with a retina variant for the same ground. `/v1/orto/tile/:z/:x/:y`
- [### Every endpoint, parameter and field The OpenAPI 3.1 reference, in English — including the batch, GeoJSON, history and export variants of the endpoints above.](https://grundfast.dk/docs/api)

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.

<https://grundfast.dk/en/dawa-replacement>

### 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.

<https://grundfast.dk/en/datafordeler-alternative>

Pricing

## Metered per call, free to start

Prices in DKK a month, excluding VAT. Pay yearly and save 20%.

Free

0 DKK / mo

5,000 calls included

Starter

99 DKK / mo

100,000 calls included

Pro

249 DKK / mo

500,000 calls included

Scale

599 DKK / mo

2,000,000 calls included

Plans, annual prices and the Enterprise contract: [see pricing](https://grundfast.dk/en/pricing).

FAQ

## Questions international teams ask

### Do I need to speak Danish?

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.

### Is Grundfast an official government API?

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.

### What is a BFE number?

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.

### Can I get owner names?

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.

### How fresh is the data?

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).

### Can I try it before paying?

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

Create a free key and make your first call in a minute. Build against a `gf_test_` key that is never billed, and upgrade when the traffic is real.

[Get started free](https://grundfast.dk/dashboard?mode=register) [Read the API reference](https://grundfast.dk/docs/api)

Free up to 5,000 calls a month · no card · test keys never billed · data from Klimadatastyrelsen / Datafordeler, CC BY 4.0
