---
operation_id: get_building_detail
method: GET
path: /v1/buildings/{gmlid}
summary: Einzelnes Gebäude per GML-ID (föderiert)
tags: [buildings]
stability: stable
since_version: 0.1.0
auth: none
data_product: buildings
snapshot_aware: true
attribution_block: false
rate_limit_tier: public
related:
  - /v1/buildings
  - /v1/buildings/3d.glb
---
# `GET /v1/buildings/{gmlid}` — Building-Detail

Liefert ein einzelnes Gebäude mit voller LoD2-Geometrie (GeoJSON-encoded MultiPolygonZ, **aggregiert über alle Surfaces des `building_id`**). Föderiert: das Bundesland wird aus dem GML-ID-Präfix abgeleitet; ist das Präfix mehrdeutig, probiert die API alle aktiven BL durch.

## Examples

### curl

```bash
curl -s https://api.lodapi.de/v1/buildings/DEHE_LOD2_45292_GMLID_1 | jq
```

### Python — Felder lesen

```python
import httpx

r = httpx.get("https://api.lodapi.de/v1/buildings/DEHE_LOD2_45292_GMLID_1")
r.raise_for_status()
b = r.json()
print(f"BL: {b['bundesland_code']}")
print(f"building_id: {b['building_id']}, LoD: {b['lod']}")
print(f"GML-ID: {b['gmlid']}")
```

## Parameters

| Parameter | In | Type | Required | Beschreibung |
|---|---|---|---|---|
| `gmlid` | path | string | yes | GML-ID des Gebäudes (BL-Präfix oder pure UUID) |

## Response

`200 OK · application/json` — Schema `#/components/schemas/BuildingDetail`.

Felder:

| Feld | Bedeutung |
|---|---|
| `gmlid` | Echo der Anfrage |
| `bundesland_code` | Quell-BL (2 Buchstaben) |
| `building_id` | Interner Building-Key, über den die Surfaces aggregiert werden |
| `lod` | LoD-Level (`"LoD2"` in Phase 1) |
| `geometry` | GeoJSON-Geometrie (MultiPolygonZ, WGS84), aggregiert über alle Surfaces des `building_id` |

## Fehler

| Status | Bedingung |
|---|---|
| `404` | `gmlid` in keinem BL gefunden |

## Stolperdrähte

- **GML-IDs sind nicht stabil über Snapshots** — wenn die Behörde reparst, ändert sich die ID. Persistenz braucht ein eigenes Mapping.
- **Nur Geometrie + Klassifikation**: Der Slim-Datenbestand enthält keine per-Building-Sachattribute. Die Response trägt `{gmlid, bundesland_code, building_id, geometry, lod}` — es gibt kein `properties`-Mapping.
- **Geometrie ist building-aggregiert**: die `geometry` fasst alle Surfaces (Wall/Ground/Roof) des `building_id` zusammen. Für Surface-Level-Einzelflächen mit `surface_class` ist `/v1/buildings` (bbox) der Pfad.

## Verwandte Endpoints

- [`GET /v1/buildings`](./list-buildings-bbox.md) — bbox-Discovery.
- [`GET /v1/buildings/3d.glb`](./get-buildings-glb.md) — Multi-Building-GLB-Export.