Vask adresser i n8n med HTTP Request-noden

Opsæt HTTP Request-noden i n8n med Header Auth, batching og genforsøg, map felterne fra datavask, og importer et færdigt workflow.

4 min Niveau: Øvet ✓ Kode testet

n8n har ikke brug for en særlig node til Danadresse. HTTP Request-noden kalder API'et, og JSON-svaret kommer ud som felter, du kan bruge i de næste noder. Den korte opskrift står på /integrationer/n8n. Denne guide tilføjer feltmapping, batching mod minutgrænsen, fejlhåndtering og et workflow, du kan importere.

1. Gem nøglen som credential

Gå til Credentials → Add credential → Header Auth. Sæt Name til X-Api-Key og Value til din nøgle, og kald credentialen Danadresse. Så står nøglen krypteret i n8n og ikke i klar tekst i workflowet.

2. Opsæt HTTP Request-noden

IndstillingVærdi
MethodGET
URLhttps://api.danadresse.dk/datavask/adgangsadresser
AuthenticationGeneric Credential Type → Header Auth → Danadresse
Send Query ParametersTil, Name betegnelse, Value {{ $json.adresse }}
Options → BatchingItems per Batch 1, Batch Interval 1000 ms
Options → ResponseInclude Response Headers and Status til

Batching gør, at n8n sender ét kald i sekundet i stedet for alle på én gang. Uden det kan en lang liste ramme minutgrænsen på få sekunder. På gratisplanen er grænsen 360 kald i minuttet, så sæt intervallet efter din plan.

Med Include Response Headers and Status ligger svaret under body, og du får statusCode og headers med.

/datavask/adgangsadresser matcher opgangen (vej, husnummer, postnummer). Skal du ramme en bestemt lejlighed, så brug /datavask/adresser: den læser etage og dør direkte fra betegnelse (Strandvejen 100, 2. tv, 2900 Hellerup), og adresse har så også etage, dør og adgangsadresseid. Separate query-parametre (vejnavn, husnr, etage, dør, postnr) virker også.

3. Map felterne

n8n-udtryk er JavaScript, og lister tælles fra 0. ?. gør, at udtrykket giver tomt i stedet for en fejl, når der ikke er nogen kandidat.

Du skal brugeUdtryk
Kategori{{ $json.body.kategori }}
Adgangsadressens id{{ $json.body.resultater[0]?.adresse.id }}
Vej og husnummer{{ $json.body.resultater[0]?.adresse.vejnavn }} {{ $json.body.resultater[0]?.adresse.husnr }}
Postnummer og by{{ $json.body.resultater[0]?.adresse.postnr }} {{ $json.body.resultater[0]?.adresse.postnrnavn }}
HTTP-status{{ $json.statusCode }}

Brug en IF- eller Switch-node på kategorien. A er et præcist match. B er ét sikkert match med små stavefejl: gå videre, og gem den officielle tekst fra adresse. C (flere kandidater eller større afvigelser) sendes til manuel kontrol og godkendes aldrig automatisk.

Vaskesvaret har ikke kommune eller koordinater. Skal du bruge dem, så tilføj en HTTP Request-node mere med URL'en https://api.danadresse.dk/adgangsadresser/{{ $json.body.resultater[0].adresse.id }} og samme credential. Læs kommune.kode, kommune.navn og adgangspunkt.koordinater[0] / [1] (længde, bredde) fra dens svar. Det er ét kald mere pr. række.

4. Fejl og 429

Åbn nodens Settings:

  • Retry On Fail: til, Max Tries 3, Wait Between Tries 5000 ms (det højeste, n8n tillader). Ved minutgrænsen (rate_limit_per_minute) sender API'et Retry-After med antal sekunder, til minutvinduet starter forfra (1-60), så et genforsøg efter 5 sekunder kan komme for tidligt. Med batching som ovenfor sker det sjældent.
  • On Error: Continue (using error output). Så får noden en ekstra udgang til rækker, der stadig fejler efter genforsøgene. Kobl den til en node, der logger adressen og fejlen.

Genforsøg hjælper ikke, hvis koden er quota_exceeded. Det betyder, at gratisplanens månedskvote og dens buffer på 20 % er brugt. Svaret har ingen Retry-After, og kvoten nulstilles den 1. i næste måned. Fejlsvar på DAWA-stierne har feltet code, så du kan skelne i fejlgrenen. Ved quota_exceeded forklarer title det i klar tekst, og details har resets_at og upgrade_url. Afviste kald tæller ikke.

Vil du hellere styre det helt selv, så slå Never Error til under Options → Response. Så kommer alle svar ud af den normale udgang, og du kan sende statusCode 429 med body.code = rate_limit_per_minute til en Wait-node, der venter {{ $json.headers['retry-after'] }} sekunder, og tilbage.

5. Importér et færdigt workflow

Kopiér JSON'en, og indsæt den på et tomt canvas i n8n med Ctrl+V eller Cmd+V. Vælg derefter din Danadresse-credential i HTTP Request-noden, og kør workflowet.

JSON#n8n-workflow
{
  "name": "Danadresse datavask",
  "nodes": [
    {
      "parameters": {},
      "name": "Start",
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [0, 0]
    },
    {
      "parameters": {
        "jsCode": "return [\n  { json: { adresse: 'Strandvejen 100, 2900 Hellerup' } },\n  { json: { adresse: 'Rådhuspladsen 1, 1550 København V' } }\n];"
      },
      "name": "Testadresser",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [220, 0]
    },
    {
      "parameters": {
        "url": "https://api.danadresse.dk/datavask/adgangsadresser",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendQuery": true,
        "queryParameters": {
          "parameters": [{ "name": "betegnelse", "value": "={{ $json.adresse }}" }]
        },
        "options": {
          "batching": { "batch": { "batchSize": 1, "batchInterval": 1000 } },
          "response": { "response": { "fullResponse": true } }
        }
      },
      "name": "Datavask",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [440, 0],
      "retryOnFail": true,
      "maxTries": 3,
      "waitBetweenTries": 5000,
      "onError": "continueErrorOutput"
    }
  ],
  "connections": {
    "Start": { "main": [[{ "node": "Testadresser", "type": "main", "index": 0 }]] },
    "Testadresser": { "main": [[{ "node": "Datavask", "type": "main", "index": 0 }]] }
  }
}

Test kaldet

Samme kald som noden, fra en terminal:

Shell#test-call
curl -s "https://api.danadresse.dk/datavask/adgangsadresser?betegnelse=Strandvejen%20100%2C%202900%20Hellerup" \
  -H "X-Api-Key: $DANADRESSE_API_KEY"

Næste skridt

Relaterede guides

Markdown-kilde Fejl i guiden? Skriv til os API-reference (Swagger)

Prøv det med en gratis nøgle

2 000 kald/måned på gratisplanen. Intet kreditkort.

Opret konto →