Danadresse API guides

Practical guides to the Danadresse API, with code that has been run against production. From the first call to replication and webhooks.

Start here

Your first API call in five minutes

Create a free key, look up an address with curl, Python or Node, and read the response.

Start here →

No guides match your search.

Getting started 9 guides

Keys, first call, errors, limits, pagination and formats.

Start here

Your first API call in five minutes

Create a free key, look up an address with curl, Python or Node, and read the response.

3 min Beginner ✓ 2026-11-02 curlpythonnodeautocomplete

The API key in a header or in the URL (api_key)

Choose between the X-Api-Key header and ?api_key= in the URL, and send the key correctly from curl, Python, Node and PHP.

4 min Beginner ✓ 2026-11-02 api-noegleheadersikkerhedcurl

Test keys and the sandbox (dawa_test_)

Use dawa_test_ keys for development and CI without spending your quota, and keep test and production apart.

4 min Beginner ✓ 2026-11-02 testnoeglesandboxcimiljoer

The error format: DAWA paths and /api/v1

Read error responses from both parts of the API with one helper, and react to the stable code instead of the error text.

5 min Intermediate ✓ 2026-11-02 fejlrfc7807pythonjavascript

Limits, quotas and 429

Understand the monthly quota and the per-minute limit, read the X-RateLimit headers, and handle each 429 code with a backoff that honours Retry-After.

6 min Intermediate ✓ 2026-11-02 ratelimit429kvotebackoff

Pagination with side and per_side

Fetch long lists page by page with side and per_side, know the limits per endpoint, and write a loop that stops at the last page.

4 min Beginner ✓ 2026-11-02 pagineringper-sidepythonjavascript

Formats: JSON, CSV, GeoJSON, NDJSON and struktur

Get addresses as JSON, CSV, GeoJSON or NDJSON with format=, choose between nested, flat and mini with struktur=, and use JSONP or fetch in the browser.

4 min Intermediate ✓ 2026-11-02 formatcsvgeojsonndjson

Coordinates and srid 4326/25832

Find the coordinates in the response, choose between WGS84 and ETRS89/UTM32 with srid, reverse geocode in both systems, and convert yourself with pyproj or proj4.

3 min Intermediate ✓ 2026-11-02 koordinatersridutmreverse

Adresse or adgangsadresse? The data model

Understand the difference between adresse and adgangsadresse, their ids and kvh/kvhx keys, how autocomplete's type relates to them, and which id to store.

4 min Beginner ✓ 2026-11-02 datamodeladresseadgangsadressekvhx

Migrating from DAWA 6 guides

From DAWA, dawa-autocomplete2 and Datafordeleren to Danadresse.

Frontend & autocomplete 8 guides

Address fields in plain JS, React, Vue, Svelte, Angular and Next.js.

Address autocomplete widget in plain JavaScript

Add an address field with suggestions to any page with one script tag, and fill street, postcode and city into separate fields.

6 min Beginner ✓ 2026-11-02 widgetjavascriptautocompleteformular

Address autocomplete field in React

Build a React hook with debounce, AbortController and keyboard navigation, and keep the API key safe as a domain-locked browser key.

5 min Intermediate ✓ 2026-11-02 reacttypescriptautocompletehooks

Address autocomplete field in Vue 3

Write a Vue 3 component with the Composition API that fetches address suggestions with debounce and cancelled requests, and emits the chosen address.

3 min Intermediate ✓ 2026-11-02 vuetypescriptautocompletecomposition-api

Address autocomplete field in Svelte 5

Build a Svelte 5 component with runes that fetches address suggestions with debounce and AbortController, and move the key to a SvelteKit endpoint if you want.

4 min Intermediate ✓ 2026-11-02 sveltesveltekitautocompleterunes

Address autocomplete field in Angular

Build a standalone Angular component with HttpClient, debounceTime and switchMap that suggests Danish addresses and cancels stale requests.

4 min Intermediate ✓ 2026-11-02 angularrxjstypescriptautocomplete

Next.js route handler as a proxy for /autocomplete

Keep the API key on the server with a Next.js App Router route handler that proxies /autocomplete with cache headers and passes rate-limit headers through.

5 min Intermediate ✓ 2026-11-02 nextjsproxynodeexpress

Browser keys and allowed domains

Lock a key to your domains in the dashboard or with PATCH /api/v1/keys/{id}, so it can sit in a public web page without being abused.

6 min Beginner ✓ 2026-11-02 sikkerhednoeglercorsbrowser

Accessible address combobox with ARIA 1.2

Learn the combobox pattern for an address field (roles, aria-activedescendant, live region and keyboard), see how our script does it, and build a minimal version yourself.

6 min Advanced ✓ 2026-11-02 tilgaengelighedariawcagautocomplete

Backend languages 8 guides

Ready-to-use clients in Python, Node, PHP, C#, Java, Go, Ruby and Rust.

A Python client with requests and httpx

Build a small Python client with autocomplete, lookup, datavask, reverse geocoding, timeouts, error codes and 429 handling.

7 min Intermediate ✓ 2026-11-02 pythonrequestshttpxdatavask

A Node.js client with fetch and @danadresse/client

Write a Node client with fetch, timeouts, error codes and Retry-After, or use the npm package @danadresse/client with a retry layer.

5 min Intermediate ✓ 2026-11-02 nodejavascriptfetchnpm

PHP and Laravel: a client with curl and the Http facade

Call Danadresse from plain PHP with curl or from Laravel with a service class, config, timeouts, retry on 429 and error codes.

6 min Intermediate ✓ 2026-11-02 phplaravelcurldatavask

C# and .NET: HttpClient with typed records and IHttpClientFactory

Build a typed Danadresse client in .NET 8 with records, IHttpClientFactory, timeouts, error codes and retry on 429 without Polly.

5 min Intermediate ✓ 2026-11-02 csharpdotnetaspnethttpclient

Java and Spring: java.net.http and RestClient

Call Danadresse from Java 17 with java.net.http and Jackson, or from Spring Boot with RestClient, with timeouts, error codes and retry on 429.

5 min Intermediate ✓ 2026-11-02 javaspringrestclientjackson

A Go client with net/http and context timeouts

Write a Danadresse client in Go using only the standard library, context timeouts, typed structs, error codes and Retry-After on 429.

5 min Intermediate ✓ 2026-11-02 gogolangnet-httpcontext

A Ruby client with Net::HTTP and Faraday

Call Danadresse from Ruby and Rails with Net::HTTP or Faraday, with timeouts, keep-alive, error codes and Retry-After on 429.

5 min Intermediate ✓ 2026-11-02 rubyrailsfaradaynet-http

Rust with reqwest and serde, plus curl in shell scripts

Build an async Rust client with reqwest and serde, and call Danadresse from shell scripts with curl and jq, with retry on 429.

5 min Advanced ✓ 2026-11-02 rustreqwestserdecurl

Webshops & forms 14 guides

Address autocomplete in checkouts and forms without writing code.

Address autocomplete in Shopify — where it works and where it does not

Add the address widget to your Shopify theme, fill postcode and city automatically, and see exactly where Shopify allows scripts.

4 min Beginner ✓ 2026-11-02 shopifyliquidwidgetautocomplete

Address autocomplete in the WooCommerce checkout

Install the Lynbro Danadresse plugin or a small mu-plugin for address autocomplete in WooCommerce, and validate the address when the order is placed.

3 min Beginner ✓ 2026-11-02 woocommercewordpressphpcheckout

Address autocomplete in the Magento 2 checkout

Install the Danadresse module for checkout autocomplete and an address check on every order, or attach the widget yourself with a theme script and a CSP whitelist.

5 min Intermediate ✓ 2026-11-02 magentoadobe-commercecheckoutcsp

Address autocomplete in PrestaShop 1.7.8 to 9

Install the Danadresse module for checkout autocomplete and an address check on every order, or build a small module of your own that loads the widget.

4 min Intermediate ✓ 2026-11-02 prestashopphpmodulcheckout

Address autocomplete in DanDomain Webshop

Paste one script tag into your DanDomain design so address fields get autocomplete with postcode and city, and point it at the fields if your design names them differently.

3 min Beginner ✓ 2026-11-02 dandomainwidgetcheckoutskabelon

Address autocomplete in Shoporama

Paste one script tag into Shoporama's body code so the checkout gets address autocomplete with postcode and city, or attach the widget to your own selectors.

3 min Beginner ✓ 2026-11-02 shoporamawidgetcheckoutdesign

Address autocomplete on Wix with Velo and a custom element

Build an address field as a Wix custom element, pass the chosen address to Velo, and see which Wix fields you cannot reach.

3 min Intermediate ✓ 2026-11-02 wixvelocustom-elementwidget

Address autocomplete in Squarespace forms

Paste one script tag into Code Injection so a Squarespace form gets address autocomplete, point it at the fields if needed, and see why the checkout cannot get it.

3 min Beginner ✓ 2026-11-02 squarespacecode-injectionformularwidget

Address autocomplete in Webflow forms

Give your Webflow fields fixed ids, paste one script tag as custom code, and fill postcode and city when the customer picks an address.

3 min Beginner ✓ 2026-11-02 webflowcustom-codeformularwidget

Address autocomplete in Shopware 6

Load the one-tag address script from a Shopware 6 theme so every address form gets autocomplete, with postcode and city filled in the right form.

3 min Intermediate ✓ 2026-11-02 shopwaretwigcheckoutwidget

Address autocomplete in Elementor forms

Attach the address widget to an Elementor Pro form field by its field id, popups included, and fill postcode and city automatically.

3 min Beginner ✓ 2026-11-02 elementorwordpressformularwidget

Address autocomplete and validation in Contact Form 7

Give the Contact Form 7 fields ids, attach the address widget, and reject addresses that cannot be found when the form is sent.

3 min Beginner ✓ 2026-11-02 contact-form-7wordpressphpformular

Address autocomplete in the Gravity Forms address field

Attach the address widget to the Gravity Forms Address field so street, postcode and city are filled, in AJAX and multi-page forms too.

3 min Beginner ✓ 2026-11-02 gravity-formswordpressformularwidget

Address autocomplete in WPForms

Attach the address widget to the WPForms address field or to plain text fields in WPForms Lite, and fill postcode and city automatically.

3 min Beginner ✓ 2026-11-02 wpformswordpressformularwidget

No-code & spreadsheets 6 guides

Excel, Google Sheets, Power Automate, Make, Zapier and n8n.

Cleanse addresses in Excel with Power Query

Look up a column of addresses against the API from Excel or Power BI with Power Query, get postcode, municipality and coordinates back, and keep usage down.

4 min Beginner ✓ 2026-11-02 excelpower-querypower-bidatavask

Cleanse addresses in Google Sheets with =DATAVASK()

Add a custom function =DATAVASK(A2) to Google Sheets with Apps Script that cleanses addresses, caches the answers and can write fixed values back.

4 min Beginner ✓ 2026-11-02 google-sheetsapps-scriptdatavaskregneark

Cleanse addresses in Power Automate with the HTTP action

Call datavask from a Power Automate flow with the HTTP action, parse the response with a ready-made JSON schema, and handle 429 and empty results.

4 min Beginner ✓ 2026-11-02 power-automatemicrosoftdatavaskhttp

Cleanse addresses in Make with the HTTP module

Set up the HTTP module in a Make scenario against datavask, map the fields correctly, and handle 429 and errors with a router or an error handler.

4 min Beginner ✓ 2026-11-02 makeintegromatdatavaskhttp

Cleanse addresses in Zapier with Webhooks or Code by Zapier

Call datavask from a Zap with Webhooks by Zapier, pick the right result out of the list, and handle errors and 429 with Code by Zapier.

4 min Beginner ✓ 2026-11-02 zapierdatavaskwebhooksautomation

Cleanse addresses in n8n with the HTTP Request node

Set up the HTTP Request node in n8n with Header Auth, batching and retries, map the fields from datavask, and import a ready-made workflow.

4 min Intermediate ✓ 2026-11-02 n8ndatavaskhttpself-hosted

Tasks 14 guides

Concrete recipes: cleansing, geocoding, DAGI, BBR, cadastre, climate.

Validate the address at checkout with datavask

Check the customer's address when the form is submitted, accept safe matches, confirm likely ones and ask for a fix on uncertain ones.

5 min Intermediate ✓ 2026-11-02 datavaskcheckoutvalideringpython

Clean a CSV export from your CRM

Wash thousands of customer addresses from a CSV export, either with a bulk job on the server or with your own loop over datavask.

5 min Intermediate ✓ 2026-11-02 csvdatavaskbulkcrm

Add coordinates to a CSV file

Geocode a list of addresses to x/y in WGS84 or UTM32 with datavask and id lookups, in plain Python or with pandas.

4 min Intermediate ✓ 2026-11-02 geokodningcsvkoordinatersrid

Find the address from a GPS position

Look up the nearest address from longitude and latitude with reverse geocoding, and handle GPS inaccuracy with a radius search.

4 min Intermediate ✓ 2026-11-02 reversegpskoordinatercirkel

Find the municipality, region, parish and police district of an address

Look up the administrative areas of an address, from municipality and region to parish, police district, court district and nomination district.

3 min Beginner ✓ 2026-11-02 dagikommunesognpolitikreds

Find addresses in a radius or a polygon

Fetch every address inside a circle or a drawn area with cirkel and polygon, URL-encode the polygon correctly and page through large results.

3 min Intermediate ✓ 2026-11-02 cirkelpolygongeojsonpaginering

Get BBR data about the building and the dwellings

Look up construction year, area, floors, use and heating for an address, and fetch the dwelling units with rooms, kitchen and bathroom.

4 min Intermediate ✓ 2026-11-02 bbrbygningenhedenrich

Cadastre, land parcel and BFE number for an address

Find the cadastral number and district for an address, look up the parcel area, and fetch BFE number, valuation and local plans with the property lookup.

3 min Intermediate ✓ 2026-11-02 matrikeljordstykkeejerlavbfe

Flood risk: the storm-surge indicator for an address

Understand the climate endpoint: how ground elevation and projected storm surge give a margin, what the levels mean and what the indicator does not cover.

4 min Intermediate ✓ 2026-11-02 klimastormflodoversvoemmelseenrich

Large-recipient postcodes in forms

What large-recipient (stormodtager) postcodes are, how the API shows them in /postnumre, on addresses and in autocomplete, and how your form handles them.

4 min Beginner ✓ 2026-11-02 postnumrestormodtagerformularervalidering

Retired addresses and address history

Find out whether a stored address has been retired, include retired addresses in searches, fetch an address's versions with /historik and track changes over time.

4 min Intermediate ✓ 2026-11-02 statusnedlagthistorikmedtagnedlagte

Postcodes, municipalities and regions for dropdowns

Fetch the full lists of postcodes, municipalities and regions, cache them properly and avoid the usual mistakes with municipality codes.

3 min Beginner ✓ 2026-11-02 postnumrekommunerregionercaching

Store the address id and re-validate later

Why you should store the address id and the access-address id, how to re-validate stored addresses in batches, and what to do when an address is retired.

5 min Beginner ✓ 2026-11-02 iduuiddatamodelvalidering

Distance between two addresses

Calculate the straight-line distance between two addresses with the distance endpoint, or work it out from the coordinates with haversine or UTM32.

3 min Beginner ✓ 2026-11-02 afstandhaversinekoordinaterenrich

Replication & webhooks 5 guides

Keep a local copy current and get notified when addresses change.

Production 6 guides

Caching, retries, usage, key rotation, CORS and licensing.

Troubleshooting 7 guides

401, 403, 429, CORS, æøå and searches with no results.

Error 401: missing or invalid API key

Find the cause of 401 missing_api_key and invalid_api_key with a checklist and a small diagnostic script, and fix the key or the way you send it.

4 min Beginner ✓ 2026-11-02 401api-noeglefejlfindingmissing-api-key

Error 403: access denied

Work out why a valid key is refused from the code in the 403 response, and fix the domains, key type, IP list or a blocked key.

5 min Intermediate ✓ 2026-11-02 403browsernoeglefejlfindingorigin

Error 400 and 404 – wrong parameters and unknown ids

Read details in a 400 error, catch misspelled parameters that are ignored without an error, and tell not_found, route_not_found and unknown_entity apart.

5 min Beginner ✓ 2026-11-02 400404parametrefejlfinding

Error 503 and timeouts

Understand which endpoints depend on public registers in real time, handle 503 upstream_unavailable with Retry-After, and set sensible timeouts in the client.

4 min Intermediate ✓ 2026-11-02 503timeoutretrydatafordeleren

CORS errors in the browser

Find the real cause behind a CORS error against api.danadresse.dk, which is open to every domain, and fix credentials, mixed content, proxies and key type.

5 min Intermediate ✓ 2026-11-02 corsbrowserfejlfindingfetch

Æ, ø and å: character sets and URL encoding

Send æøå correctly URL-encoded, read UTF-8 responses without broken characters, open CSV in Excel with the right letters, and understand the oe/aa/ae folding in autocomplete.

4 min Beginner ✓ 2026-11-02 utf-8url-kodningexcelcsv

No results? When the response is an empty list

Work through a checklist when the API answers 200 with an empty list, from side and street names to status, srid, autocomplete type and datavask.

5 min Beginner ✓ 2026-11-02 tomme-svarfejlfindingautocompletedatavask

AI & MCP 1 guides

Give Claude, Cursor and other AI agents access to Danish addresses.

Get a free key

2,000 calls/month on the free plan. No credit card.

Create account →