# Find adresser for mange punkter

`POST /v1/adgangsadresser/reverse:batch` · DAWA-kompatibel

Den nærmeste adgangsadresse til hvert punkt i en liste, i ét kald, med en fejl pr. punkt uden adresse.

Batch-udgaven af [`/v1/adgangsadresser/reverse`](https://grundfast.dk/docs/api/adgangsadresser-reverse) til fx en liste af GPS-punkter eller målerplaceringer. Hvert punkt får den ene nærmeste adgangsadresse med `afstand_m` og `bfe_nummer`. Punkter sendes i WGS84 som `lon`/`lat`.

Punkter med samme koordinat (afrundet til ca. 10 cm) tælles én gang. Alle punkter tjekkes, før noget slås op: ligger ét uden for Danmark, afvises hele kaldet med `400`, så en fejl i inputtet ikke gemmer sig i et ellers pænt svar.

Giv hvert punkt et `id`, så kan du parre svarene med dine egne rækker — det kommer med både i `results` og i `errors`. Et punkt uden adresse inden for `radius` står i `errors` med status `404` og koster ikke noget.

Antallet pr. kald følger planen: 50 på Pro, 100 på Scale og 150 på Enterprise. En længere liste afvises med `402`, der nævner den plan, der tager den — eller send listen som et [job](https://grundfast.dk/docs/jobs).

**Godkendelse:** `Authorization: Bearer gf_live_…` (eller `gf_test_…`) · kræver Pro-planen

**Afregning:** Én enhed pr. punkt, der fik en adresse.

## Parametre

| Navn | Placering | Type | Påkrævet | Beskrivelse |
| --- | --- | --- | --- | --- |
| `punkter` | body | object[] | ja | Punkter som `{ lon, lat, id? }` i WGS84. `id` er din egen nøgle (højst 64 tegn) og kommer med tilbage. |
| `radius` | body | integer | nej | Søgeradius i meter for alle punkter, 1–1000. |

## Request-body

```json
{
  "punkter": [
    { "lon": 12.5696, "lat": 55.6757, "id": "maaler-1" },
    { "lon": 10.2039, "lat": 56.1527, "id": "maaler-2" }
  ],
  "radius": 200
}
```

## Eksempel

```bash
curl -X POST "https://api.grundfast.dk/v1/adgangsadresser/reverse:batch" \
  -H "Authorization: Bearer $GRUNDFAST_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"punkter":[{"lon":12.5696,"lat":55.6757,"id":"maaler-1"},{"lon":10.2039,"lat":56.1527,"id":"maaler-2"}],"radius":200}'
```

## Svar (200)

```json
{
  "results": [
    {
      "id": "maaler-1",
      "punkt": { "lon": 12.5696, "lat": 55.6757 },
      "adresse": {
        "betegnelse": "Rådhuspladsen 1, 1550 København V",
        "adgangsadresse_id": "0a3f507a-ec01-32b8-e044-0003ba298018",
        "bfe_nummer": 6033528,
        "vejnavn": "Rådhuspladsen",
        "husnr": "1",
        "postnr": "1550",
        "postnrnavn": "København V",
        "kommunekode": "0101",
        "koordinat": { "lon": 12.5695777, "lat": 55.6756275 },
        "afstand_m": 8
      }
    },
    {
      "id": "maaler-2",
      "punkt": { "lon": 10.2039, "lat": 56.1527 },
      "adresse": {
        "betegnelse": "Park Allé 3, 8000 Aarhus C",
        "adgangsadresse_id": "0a3f5096-b10f-32b8-e044-0003ba298018",
        "bfe_nummer": 5623561,
        "vejnavn": "Park Allé",
        "husnr": "3",
        "postnr": "8000",
        "postnrnavn": "Aarhus C",
        "kommunekode": "0751",
        "koordinat": { "lon": 10.2040785, "lat": 56.1525951 },
        "afstand_m": 16
      }
    }
  ],
  "errors": [],
  "requested": 2,
  "succeeded": 2,
  "failed": 0,
  "radius": 200,
  "meta": { "kilde": "Datafordeler DAR via Grundfast", "grundfast_version": "0.1.0" }
}
```

## Vigtige felter

| Felt | Type | Betydning |
| --- | --- | --- |
| `results[].adresse` | object | Den nærmeste adgangsadresse med `afstand_m`, `adgangsadresse_id` og `bfe_nummer` — samme form som i enkeltkaldet. |
| `errors[]` | object[] | Punkter uden adresse inden for `radius`, med `punkt`, `error` og `status: 404`. |
| `requested` | integer | Antal unikke punkter efter dubletfjernelse. |

## Fejl

| Status | Betydning |
| --- | --- |
| 400 | Body er ikke `{ punkter: [{ lon, lat, id? }] }`, et punkt ligger uden for Danmark, eller listen er længere, end nogen plan tager pr. kald. |
| 401 | Nøglen mangler eller er ugyldig. |
| 402 | Planen er under Pro, eller listen er længere end din plans loft pr. kald. Svaret nævner den plan, der tager den. |
| 429 | Burst-grænsen eller månedskvoten er nået. Se `Retry-After`. |
| 503 | Adresseindekset er ikke slået til eller endnu ikke indlæst i dette miljø. |
