# Dit første API-kald på fem minutter

> Opret en gratis nøgle, slå en adresse op med curl, Python eller Node, og læs svaret.
>
> https://danadresse.dk/guides/kom-i-gang · verified 2026-11-02
Denne guide tager dig fra ingenting til et virkende adresseopslag. Du skal bruge en e-mailadresse og en terminal.

Base-URL'en er `https://api.danadresse.dk`. Endpoints, parametre og JSON-felter er de samme som i DAWA, så eksisterende DAWA-kode virker, når du har skiftet domænet og tilføjet en nøgle.

## 1. Opret en konto og en nøgle

1. Gå til [danadresse.dk/dashboard/signup](/dashboard/signup) og skriv din e-mail.
2. Indtast den 6-cifrede kode, du får på mail.
3. Åbn [Nøgler](/dashboard/keys) og klik **Opret nøgle**. Vælg *live* til rigtige kald eller *test* til udvikling (se [Testnøgler](/guides/testnoegler-sandbox)).

Nøglen starter med `dawa_live_` eller `dawa_test_` og vises kun én gang. Gem den i din password manager eller i en `.env`-fil, aldrig i Git.

Gratisplanen giver 2 000 kald om måneden og 360 kald i minuttet. Der kræves intet kreditkort.

## 2. Gem nøglen i en miljøvariabel

Alle eksempler i guiderne læser nøglen fra `DANADRESSE_API_KEY`, så du kan kopiere dem direkte:

```bash id=export-key run=no
export DANADRESSE_API_KEY="dawa_live_din_nøgle_her"
```

## 3. Lav det første kald

Slå op, hvilke adresser der matcher "Rådhuspladsen 1":

```bash id=first-curl run=live expect="tekst"
curl -s "https://api.danadresse.dk/autocomplete?q=R%C3%A5dhuspladsen%201&per_side=3" \
  -H "X-Api-Key: $DANADRESSE_API_KEY"
```

Samme kald i Python (kræver `pip install requests`):

```python id=first-python run=live expect="Rådhuspladsen"
import os
import requests

r = requests.get(
    "https://api.danadresse.dk/autocomplete",
    params={"q": "Rådhuspladsen 1", "per_side": 3},
    headers={"X-Api-Key": os.environ["DANADRESSE_API_KEY"]},
    timeout=10,
)
r.raise_for_status()
for forslag in r.json():
    print(forslag["forslagstekst"])
```

Og i Node 18 eller nyere, som har `fetch` indbygget:

```js id=first-node run=live expect="Rådhuspladsen"
const url = new URL("https://api.danadresse.dk/autocomplete");
url.searchParams.set("q", "Rådhuspladsen 1");
url.searchParams.set("per_side", "3");

const res = await fetch(url, {
  headers: { "X-Api-Key": process.env.DANADRESSE_API_KEY },
});
if (!res.ok) throw new Error(`HTTP ${res.status}: ${await res.text()}`);
for (const forslag of await res.json()) console.log(forslag.forslagstekst);
```

## 4. Læs svaret

`/autocomplete` returnerer en liste af forslag. Hvert forslag har en `type` (`vejnavn`, `adgangsadresse` eller `adresse`), en tekst til visning og et `data`-objekt med id'er og koordinater:

```json id=first-response run=no
[
  {
    "type": "adresse",
    "tekst": "Rådhuspladsen 1, 3300 Frederiksværk",
    "forslagstekst": "Rådhuspladsen 1, 3300 Frederiksværk",
    "caretpos": 35,
    "data": {
      "id": "762a9a1f-a5fb-4e47-b1b2-9fa94026bc80",
      "vejnavn": "Rådhuspladsen",
      "husnr": "1",
      "postnr": "3300",
      "postnrnavn": "Frederiksværk",
      "kommunekode": "0260",
      "adgangsadresseid": "0a3f507f-0959-32b8-e044-0003ba298018",
      "x": 12.01612365,
      "y": 55.97657023
    }
  }
]
```

De felter, du oftest skal bruge:

| Felt | Indhold |
|---|---|
| `forslagstekst` | Adressen som én linje, klar til at vise brugeren |
| `data.id` | Adressens UUID. Gem den, så du kan slå adressen op igen senere |
| `data.adgangsadresseid` | Id for bygningens indgang (uden etage og dør) |
| `data.x`, `data.y` | Længde- og breddegrad (WGS84) |

Hent hele adressen med id'et, når brugeren har valgt et forslag:

```bash id=lookup-by-id run=live expect="adressebetegnelse"
curl -s "https://api.danadresse.dk/adresser/762a9a1f-a5fb-4e47-b1b2-9fa94026bc80" \
  -H "X-Api-Key: $DANADRESSE_API_KEY"
```

## 5. Hold øje med forbruget

Hvert svar har headers, der fortæller, hvor meget af kvoten der er tilbage:

```http id=ratelimit-headers run=no
X-RateLimit-Limit: 2000
X-RateLimit-Remaining: 1997
X-RateLimit-Reset: 1796083200
```

Tallene ovenfor er kun et eksempel. `X-RateLimit-Reset` er et Unix-tidsstempel for, hvornår måneden nulstilles. Grænsen pr. minut står i `X-RateLimit-Minute-Limit`, `X-RateLimit-Minute-Remaining` og `X-RateLimit-Minute-Reset`. Går en gratiskonto over månedskvoten, får den stadig svar op til 2 400 kald (20 % ekstra), og de svar har headeren `X-Quota-Grace: true`. Se [Grænser, kvoter og 429](/guides/graenser-og-429) for, hvordan du håndterer et svar med status 429.

## Næste skridt

- Vil du bruge nøglen i en browser? Læs [Browsernøgler og tilladte domæner](/guides/browser-noegler-domaener) først.
- Kommer du fra DAWA? [Skift fra DAWA ved at ændre base-URL'en](/guides/migrer-fra-dawa).
- Byg et adressefelt: [Autocomplete-widget i ren JavaScript](/guides/vanilla-autocomplete-widget).
