GET /v1/datasets

Status pro Bundesland (Snapshot, Coverage, Lizenz)

stable seit v0.1.0 datasets auth: none

GET /v1/datasets — Verfügbare LoD2-Datensätze

Listet alle Bundesländer, für die Lodapi LoD2-Gebäude bereitstellt. Eine Zeile pro Bundesland, je mit dem aktuellsten Snapshot-Datum, Building-Count, Lizenz und Quell-URL. Dies ist der Discovery-Endpoint — typischerweise der erste Call jeder Lodapi-Integration.

Wann verwenden

Examples

curl

curl -s https://api.lodapi.de/v1/datasets | jq

Python

import httpx

r = httpx.get("https://api.lodapi.de/v1/datasets")
r.raise_for_status()
for ds in r.json()["datasets"]:
    print(f'{ds["bundesland_code"]:3s}  {ds["snapshot_date"]}  {ds["building_count"]:>10,}  {ds["license_id"]}')

TypeScript (fetch)

const r = await fetch("https://api.lodapi.de/v1/datasets");
const { datasets } = await r.json() as { datasets: Dataset[] };
const live = datasets.filter(d => d.snapshot_date);
console.log(`${live.length} Bundesländer live`);

Caching

/v1/datasets setzt keinen ETag — Conditional GET via If-None-Match/304 greift hier nicht. Caching läuft ausschließlich über Cache-Control: public, max-age=300 (5 min Browser-/CDN-Cache).

Parameters

Keine. Der Endpoint nimmt keine Query- oder Path-Parameter entgegen.

Response

200 OK · application/json — Schema-Quelle openapi.json (#/components/schemas/DatasetListResponse).

{
  "datasets": [
    {
      "id": "he",
      "bundesland_code": "he",
      "name": "© HLBG (DL-DE/Zero 2.0)",
      "license_id": "dl-de-zero-2.0",
      "source_url": "https://gds.hessen.de/INTERMET/Geodaten/3D-Gebaeudemodelle/",
      "snapshot_date": "2026-04-15",
      "building_count": 4934236,
      "validation_pass_pct": 99.7,
      "last_sync": "2026-05-13T09:42:18Z"
    }
  ],
  "count": 3
}

Antwort-Header

HeaderWertVerwendung
Cache-Controlpublic, max-age=3005 min Browser-/CDN-Cache

Stolperdrähte

Verwandte Endpoints

Verwandt

Bereit?

Hol dir deinen API-Key.

1.000 Calls und 1 GB Tile-Daten kostenlos pro Monat — ohne Kreditkarte, ohne Ablaufdatum.