Hobby
Side projects and prototypes.
- 2,000 API calls + 250 MCP calls/month
- 1 key · 1 device · 1 IP (48h binding)
- Bulk cleaning up to 1,000 rows
- DAR · BBR · DAGI · IBAN/CVR/EAN validation
- Community support
up to 360 calls/min · no credit card
Drop-in replacement for DAWA. Change one line, add an API key — the rest works exactly as before. Autocomplete in ~70 ms (median).
Click through the six API areas and see TypeScript code + JSON responses in action. Copy the examples directly into your project.
Lightning-fast search across 2.7M addresses with fuzzy matching, prefix-cache, and bulk-receiver routing. Responses in the order users expect.
// npm install @danadresse/js import { danadresse } from '@danadresse/js'; const client = danadresse({ apiKey: 'dawa_live_...' }); const hits = await client.autocomplete('Rådhuspladsen');
[
{ "text": "Rådhuspladsen 1, 1550 København V",
"id": "0a3f50af-...",
"municipality_code": "0101" },
{ "text": "Rådhuspladsen 2, 1550 København V", … }
]
Classification into category A (exact), B (secure match), or C (uncertain). Ideal for checkout, CRM, or invoicing systems.
curl -X POST https://api.danadresse.dk/datavask/adresser \ -H 'X-Api-Key: dawa_live_...' \ -d '{"street_name":"Rådhuspl","house_number":"1","zip_code":"1550"}'
{
"category": "A",
"results": [{
"cleaning_result": { "score": 100 },
"address": { "street_name": "Rådhuspladsen", ... }
}]
}
WGS84 (EPSG:4326) or Danish standard ETRS89/UTM32 (EPSG:25832). Built-in bounding-box prefilter + Haversine distance.
# pip install danadresse from danadresse import Client c = Client(api_key="dawa_live_...") addr = c.reverse_geocode(12.568, 55.676)
{
"id": "0a3f50af-...",
"designation": "Rådhuspladsen 1, 1550 Copenhagen V",
"reference point": { "coordinates": [12.568, 55.676] }
}
Complete list of Danish postal codes with municipality affiliation, bbox and visual center. Live updated from the Climate Data Agency.
curl 'https://api.danadresse.dk/postnumre?q=K%C3%B8benhavn'
[
{ "nr": "1050", "name": "Copenhagen K" },
{ "nr": "1051", "name": "Copenhagen K" },
{ "nr": "2100", "name": "Copenhagen Ø" }
]
Price per 1,000 (not per call). Ideal for migrations, monthly calls or batch validation. 100× cheaper than loop-on-single-lookup.
POST /batch/datavask
{
"addresses": [
{ "vejnavn": "Rådhuspladsen", "husnr": "1" },
{ "vejnavn": "Strøget", "husnr": "42" }
]
}
{
"job_id": "bat_abc123",
"status": "processing",
"webhook_url": "https://your.app/hook"
}
Event stream with sequence number — just like DAWA's replication. Poll periodically, use insert/update/delete events transactionally.
curl 'https://api.danadresse.dk/replikering/adresser/haendelser?sekvensnummerfra=207145000'
[
{ "sekvensnummer": 207145001,
"operation": "update",
"tidspunkt": "2026-06-12T13:00:00Z",
"data": { "id": "...", "vejnavn": "..." } }
]
Same paths, same response shape. Just change the base URL and add your X-Api-Key — the rest of your code is unchanged.
curl "https://dawa.aws.dk/autocomplete?q=rådhuspladsen"
curl "https://api.danadresse.dk/autocomplete?q=rådhuspladsen" \
-H "X-Api-Key: dawa_live_…"
fetch("https://dawa.aws.dk/autocomplete?q=rådhuspladsen")
fetch("https://api.danadresse.dk/autocomplete?q=rådhuspladsen", {
headers: { "X-Api-Key": "dawa_live_…" }
})
requests.get("https://dawa.aws.dk/autocomplete",
params={"q": "rådhuspladsen"})
requests.get("https://api.danadresse.dk/autocomplete",
params={"q": "rådhuspladsen"},
headers={"X-Api-Key": "dawa_live_…"})
$ctx = stream_context_create();
file_get_contents("https://dawa.aws.dk/autocomplete?q=rådhuspladsen", false, $ctx);
$ctx = stream_context_create(["http" => [
"header" => "X-Api-Key: dawa_live_…"
]]);
file_get_contents("https://api.danadresse.dk/autocomplete?q=rådhuspladsen", false, $ctx);
http.Get("https://dawa.aws.dk/autocomplete?q=rådhuspladsen")
req, _ := http.NewRequest("GET",
"https://api.danadresse.dk/autocomplete?q=rådhuspladsen", nil)
req.Header.Set("X-Api-Key", "dawa_live_…")
http.DefaultClient.Do(req)
await http.GetStringAsync( "https://dawa.aws.dk/autocomplete?q=rådhuspladsen");
http.DefaultRequestHeaders.Add("X-Api-Key", "dawa_live_…");
await http.GetStringAsync(
"https://api.danadresse.dk/autocomplete?q=rådhuspladsen");
Look up an address and get BFE, parcel, public valuation, BBR buildings, zoning status & local plans all in one. We join EBR + Matriklen + Property Valuation + BBR + Planning Data for you — you make one call.
All from open public registers (CC BY 4.0), cached and lightning fast. Competitors charge per lookup for this.
Read the property data guide →curl 'https://api.danadresse.dk/api/v1/enrich/adresser/{id}/ejendom'
{
"ejendomme": [{ "bfeNummer": "6033795",
"vurdering": { "ejendomsvaerdi": 70000000,
"grundvaerdi": 47032400,
"vurderingsaar": 2020 } }],
"zoning": { "zone": "Urban zone", "lokalplaner": [...] },
"bygninger": [{ "opfoerelsesaar": 1680,
"samletBygningsareal": 4457 }]
}
Address autocomplete right in checkout. No plugin dependencies.
Theme App Extension + headless Hydrogen. CORS-open API.
Framework-agnostic. Vanilla JS, React, Vue, Svelte. P95 < 30 ms.
2,000 calls/month. No credit card. All endpoints included.
BBR + valuation + energy label in one call. Auto-fill property sheets.
10 concrete steps. Migrate in under 30 minutes. No downtime.
What breaks, who is affected, and migration in under 30 minutes.
DAR, DAWA and Datafordeleren — exactly what they are and what sets them apart.
REST vs GraphQL, API key vs business agreement, datavask comparison.
2,000 address lookups/month are free — forever. Change plan or cancel anytime. No commitment period, no setup fees, no surprises. Every plan includes the full data package — addresses, BBR building data, property valuation, climate risk and DAGI — plus our MCP server, so AI agents can look up addresses directly.
Side projects and prototypes.
up to 360 calls/min · no credit card
Small webshops and freelancers.
up to 1,700 calls/min · full data package + MCP
Medium-sized SaaS platforms.
up to 7,000 calls/min · stripe + bank transfer
2.5M calls, 100 keys.
SAML SSO · audit log · on-prem
All prices are B2B and exclude VAT. 25% Danish VAT is added at checkout; EU businesses with a valid VAT number are billed at 0% (reverse charge). Yearly billing is charged as one payment (Basis 852 DKK/yr · Pro 2,676 DKK/yr).
Yes. We implement 100% of DAWA's REST API with the same paths, query parameters,
JSON fields, and address IDs (UUIDv4). Change the base URL to https://api.danadresse.dk
and add an X-Api-Key header. The rest works.
Directly from the Climate Data Agency's authoritative DAR (Danish Address Register)
— the same data foundation as DAWA. We fetch via /replikering until August 17, 2026,
then directly from Datafordeleren. Data is CC BY 4.0.
For you: nothing. We will switch the backend to Datafordeleren — and because address IDs are identical between DAWA and DAR, you will lose no references in your database. No code changes. No migration.
All servers operate in the EU (Germany). Address data is public (CC BY 4.0). We log API calls for 30 days pseudonymized for billing. No personal data leaves the EU. Read privacy policy.
Official, open-source (MIT): TypeScript (@danadresse/js),
Python (pip install danadresse). The REST API is DAWA-compatible,
so all existing DAWA clients (Go, PHP, Ruby, Java, .NET, R) also work.
Certainly. Write to hello@lynbro.dk or book a 15-minute demo call. We also assist with DAWA migration directly.
1,000 free address lookups per month. No credit card. No commitment. Drop-in DAWA replacement if you already have an integration.