Geocoding and reverse geocoding for Danish addresses.
Convert addresses to coordinates and coordinates back to addresses across all of Denmark — in WGS84 and ETRS89/UTM32N (EPSG:25832). 2.7M addresses, drop-in DAWA replacement.
Two directions, two coordinate systems.
Forward and reverse geocoding on the same address index — return coordinates in WGS84 for maps or ETRS89/UTM32N for GIS, with a single parameter.
Forward geocoding
Turn a street name, house number and postal code into precise lat/lon coordinates. Fuzzy matching handles imperfect input.
- Address → coords
- Fuzzy input
Reverse geocoding
Send a coordinate and get the nearest access address back — UUID, street, house number, postal code. Under 10ms.
- Coords → address
- < 10ms
WGS84 + UTM32N
Coordinates in WGS84 (lat/lon for web maps) and ETRS89/UTM32N (EPSG:25832, the Danish national grid for GIS).
- WGS84
- EPSG:25832
Coordinate lookup
Every address carries pre-computed coordinates, so geocoding is a single fast index lookup — not a slow on-the-fly calculation.
- Pre-computed
Spatial filters
Filter list endpoints by ?polygon=, ?cirkel=lon,lat,radius_m and ?srid=25832 — find every address inside an area.
- polygon
- cirkel
- srid
Batch geocoding
Geocode up to 1M rows in one batch job for migrations, data cleansing and bulk enrichment.
- Bulk 1M+
One API that grows with you. From first prototype to millions of lookups.
See all featuresCoordinates in. Address out.
Send a lon/lat pair and get the nearest Danish address back — with UUID, street, house number and postal code. Under 10ms.
// You only have a coordinatelon = 8.4501, lat = 55.4663
// Reverse geocode itGET /v1/adgangsadresser/reverse?x=8.4501&y=55.4663→ { vejnavn: "Schaubparken", husnr: "22", postnr: "6700", ... }
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", ... }
]Maps, routing and analytics.
Geocoding is the bridge between a text address and a point on the map — the foundation for navigation, catchment analysis and spatial joins.
Map pins from addresses
Forward-geocode customer addresses to drop accurate pins on a web map.
Routing & delivery
Coordinates feed route optimisation and delivery-window estimation.
GPS to address
Reverse-geocode a phone's GPS position into a deliverable address at check-in or report.
Spatial analytics
Join address data to regions, catchments and demographics for analysis and planning.
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.
Geocoding questions
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.




