A DAWA replacement that works like DAWA.
DAWA shuts down 1 July 2026. We mirror the API 1:1 — all 35 endpoints, reference data, replication stream and spatial queries verified identical to prod-DAWA. Change the base URL, add an API key, you're done.
A 100% drop-in verified DAWA replacement.
Other DAWA alternatives require rewriting your integration. We don't — same paths, same params, same JSON shape, same error codes. A zero-tolerance e2e test confirms parity across all 35 endpoints continuously.
100% drop-in verified
A zero-tolerance e2e test runs against the production DAWA continuously. All 35 endpoints — including reference data, replication and spatial — match on JSON shape, error bodies, KVH/KVHX identifiers and DAR→DAWA status enums.
- Same paths
- Same params
- Same JSON shape
- Same error codes
< 50ms response
p99 under 50ms globally. Cloudflare CDN cache so autocomplete feels instant.
- Global CDN
Reference data — 14 endpoints
jordstykker, ejerlav, bebyggelser, stormodtagere, vejstykker, navngivneveje, supplerende bynavne — list + detail. All DAWA-shape.
- Cadastral
- Place names
- List + detail
Replication event-stream
10 /dawa/replikering/* endpoints. Cursor by eventid, topological ordering, diff snapshots — sync a local Postgres mirror in real time.
- Event stream
- Cursor-based
- Local mirror
Spatial queries
?polygon=JSON, ?cirkel=lon,lat,radius_m, ?srid=25832 — DAWA-identical spatial filtering on every list endpoint.
- polygon
- cirkel
- srid
Real-time webhooks
HMAC-signed push events when an address changes. Subscribe to specific UUIDs or postal codes. DAWA never had this.
- HMAC signing
- Retry with backoff
Batch + extras
Bulk uploads up to 1M rows. Statistics API. Reverse geocoding under 10ms. /v1/* paths with structured errors and ETag.
- Bulk 1M+
- Stats
- Reverse
Bearer-token auth (free)
Free API key per workspace. Scoped permissions, origin allowlist for browser-safe pub keys, dashboard with usage stats.
- Free key
- Origin allowlist
One API that grows with you. From first prototype to millions of lookups.
See all featuresChange one line. Everything else works.
We're 100% drop-in compatible with DAWA. Same paths, same query parameters, same JSON shape. Switch the base URL to /dawa and add your API key — the rest of your integration is unchanged.
// Your existing DAWA codeconst r = await fetch('https://api.dataforsyningen.dk/adgangsadresser?q=' + q,);const addresses = await r.json();
// Switch base URL to /dawa + add your keyconst r = await fetch('https://api.danskadresseapi.dk/dawa/adgangsadresser?q=' + q,{ headers: { Authorization: 'Bearer YOUR_KEY' } },);const addresses = await r.json();
Make your first address lookup in under 30 seconds.
Click through the six API areas to see TypeScript code and JSON responses in action. Copy the examples straight into your project.
Search addresses, street names and postal codes
Lightning-fast search across 4.1M addresses with fuzzy matching, prefix cache and bulk-receiver routing. Results come back in the order users expect.
- p99 < 50ms
- Typesense + Redis
- Fuzzy and typo-tolerant
// TypeScript SDK
const { results } = await addr.autocomplete({
q: 'vesterbro',
limit: 5,
});[
{ "tekst": "Vesterbrogade 1, 1620 København V",
"id": "0a3f50a7-...",
"kommunekode": "0101" },
{ "tekst": "Vesterbrogade 12, 1620 København V", ... }
]Migration is mostly a URL change.
The only real difference is authentication — DAWA was open, we require a free API key so we can offer rate limits and stable uptime. Everything else — paths, params, JSON, error codes — is identical.
Base URL
dawa.aws.dk → api.danskadresseapi.dk/dawa. Same paths under it — all 35 endpoints.
Response format
JSON shape, field names, ID formats and {type,title,details} error bodies are 100% identical to DAWA spec.
Authentication
Add an Authorization: Bearer <key> header. Free key, no credit card required.
Migrate gradually
Keep DAWA-style code on /dawa/* while moving new features to /v1/* with webhooks, batch, ETag and confidence. Mix freely.
Reference data preserved
vejstykker, jordstykker, ejerlav, bebyggelser, stormodtagere — all reference endpoints respond identically.
Spatial filters preserved
polygon, cirkel and srid=25832 work on every list endpoint just like on DAWA.
Replication unchanged
/dawa/replikering/* event stream behaves like DAWA — your downstream ETL keeps working.
Pricing
Free 1,000 calls/mo for hobby projects. Basic from DKK 99/mo (100k calls). Pro DKK 299/mo with webhooks.
Free to start. Pay only for what you use.
1,000 address lookups per month are free — forever. Change plan or cancel anytime. No commitment, no setup fees, no surprises.
Hobby
Side projects and prototypes.
- 1,000 calls/mo
- 3 live keys · 7-day log
- 1 workspace · 1 seat
Basic
Small businesses and freelancers.
- 100,000 calls/mo
- +DKK 1 per 1,000 extra
- 5 live keys · 14-day log
Pro
Mid-sized companies and SaaS platforms.
- 500,000 calls/mo
- +DKK 1 per 1,000 extra
- 25 live keys · 30-day log
Enterprise
Starts at 2M calls, 300/sec and 100 keys. Scales up to 100M calls.
- 2M calls included (up to 100M)
- 300 calls/sec (up to 1,000/sec)
- 100 API keys (up to 500)
Need more capacity or missing a feature? Contact sales
Find the answer. Step-by-step guides for everything.
24+ guides — from your first DAWA migration to advanced batch validation. Search, filter and learn.
Switching from DAWA? Common questions.
Switching from DAWA
- The best DAWA alternativeSame data and 35 endpoints, plus webhooks, batch and a dashboard DAWA never had.
- Compare DAWA and DanskAdresseAPIFeature-by-feature: endpoints, data, performance and pricing side by side.
- Read the migration guideStep-by-step migration with before/after code in JavaScript, Python, PHP, Go and C#.
- What is DAWA?Background on Denmark’s Address Web Service and what its shutdown means.
Ready to start?
1.000 free address lookups per month. No credit card, no commitment. Drop-in DAWA replacement if you already have an integration.




