Grundlagen
- Basis-URL
https://kulturdb.de/api/v1
- Zugriff
- nur lesend (HTTP
GET), ohne Anmeldung und ohne API-Schlüssel
- Formate
- JSON (RFC 8259), GeoJSON (RFC 7946,
application/geo+json), Zeichensatz UTF-8
- Koordinaten
- WGS 84 (EPSG:4326), Reihenfolge in GeoJSON
[Länge, Breite]
- Browser-Zugriff
- CORS ist freigegeben (
Access-Control-Allow-Origin: *) – direkt aus Web-Anwendungen nutzbar
- Zwischenspeicher
- Antworten enthalten
Cache-Control-Angaben (1–60 Minuten)
- Fehler
- passender HTTP-Status (
400 ungültige Parameter, 404 nicht gefunden) mit {"error": "…"}
- Versionierung
- Die Version steht im Pfad (
/v1); Änderungen, die bestehende Anwendungen brechen, erscheinen nur in einer neuen Version.
- Objekt-URLs
- Die Objekt-ID ist dauerhaft:
https://kulturdb.de/objekt/{id} (alte Links einobjekt.php?id= werden weitergeleitet)
Endpunkte
GET /objekte.geojson
Objekte als GeoJSON-FeatureCollection – ideal für Kartenclients (NETGIS, OpenLayers, Leaflet, QGIS). Alle Filter sind kombinierbar.
| Parameter | Wert | Bedeutung |
bbox | minLon,minLat,maxLon,maxLat | nur Objekte im Kartenausschnitt (WGS 84) |
limit | 1 – 50000 | maximale Anzahl (Standard 5000) |
| + alle Filter |
https://kulturdb.de/api/v1/objekte.geojson?bbox=6.62,49.74,6.66,49.77&limit=100
https://kulturdb.de/api/v1/objekte.geojson?objektart=Burgen
GET /objekte/{id}
Ein einzelnes Objekt mit Koordinaten, Kurzbeschreibung, Bildern und Bildquellen. Optional sprache=en, sprache=fr bzw. sprache=nl: Ordnungsbegriffe und Seiten-URL in dieser Sprache. Beispielantwort
https://kulturdb.de/api/v1/objekte/99
https://kulturdb.de/api/v1/objekte/99?sprache=en
GET /punkte
Sehr kompakte Punktliste für Clusterkarten mit vielen tausend Objekten:
{"felder": ["id","lat","lon","titel","bereich","kategorie"], "bereiche": […], "kategorien": […], "daten": [[…], …]} –
bereich und kategorie sind Indizes in den Listen bereiche und kategorien (-1 = ohne). Alle Filter sind möglich.
https://kulturdb.de/api/v1/punkte?landkreis=Vulkaneifel
GET /vorschlaege
Schnellsuche (bis zu 10 Treffer) für Eingabefelder mit Vorschlägen. Parameter q, mindestens 2 Zeichen.
https://kulturdb.de/api/v1/vorschlaege?q=porta
GET /
Maschinenlesbare Übersicht aller Endpunkte.
https://kulturdb.de/api/v1
Beispiele
QGIS
Layer › Layer hinzufügen › Vektorlayer hinzufügen, Quelltyp Protokoll: HTTP(S), als URI z. B.:
https://kulturdb.de/api/v1/objekte.geojson?landkreis=Trier-Saarburg&limit=50000
JavaScript
const res = await fetch('https://kulturdb.de/api/v1/objekte.geojson?objektart=Burgen');
const geojson = await res.json();
console.log(geojson.features.length + ' Burgen');
Leaflet
fetch('https://kulturdb.de/api/v1/objekte.geojson?gemeinde=Arzfeld')
.then((r) => r.json())
.then((data) => L.geoJSON(data, {
onEachFeature: (f, layer) => layer.bindPopup(
`<a href="${f.properties.url}">${f.properties.titel}</a>`)
}).addTo(map));
OpenLayers / NETGIS Client Suite
new ol.layer.Vector({
source: new ol.source.Vector({
url: (extent) => 'https://kulturdb.de/api/v1/objekte.geojson?bbox=' +
ol.proj.transformExtent(extent, 'EPSG:3857', 'EPSG:4326').join(','),
format: new ol.format.GeoJSON(),
strategy: ol.loadingstrategy.bbox
})
});
Beispielantwort /objekte/99
{
"id": 99,
"titel": "Porta Nigra (1)",
"untertitel": null,
"ort": "Trier, Mitte-Gartenfeld",
"gemeinde": "Trier",
"ortsteil": "Mitte-Gartenfeld",
"landkreis": "Kreisfreie Stadt Trier",
"bereich": "Bau- und Kunstdenkmale",
"kategorie": "Wehrbauten und militärische Anlagen",
"objektart": "Stadtbefestigungen",
"epoche": "Kelten- / Römerzeit",
"zeit": "170 nach Chr.",
"url": "https://kulturdb.de/objekt/99-trier-porta-nigra-1",
"bild": "https://kulturdb.de/media/thumbs/480/lazarus_porta-nigra_1912.jpg",
"lat": 49.759634,
"lon": 6.644084,
"beschreibung": "Am Nordende der Fußgängerzone. Beschreibung: Die sogenannte Porta Nigra gehört zu den am besten erhaltenen Stadttoren des römischen Reiches. Das mächtige Tor im Norden der Stadt wurde zusammen mit der Stadtmauer und weiteren Toren gleicher Art wohl im letzten Drittel des 2. Jahrhunderts n. Chr …",
"bilder": [
{
"url": "https://kulturdb.de/bilder/lazarus_porta-nigra_1912.jpg",
"quelle": "Max Lazarus: Die Porta Nigra in Trier, 1912. © Stadtmuseum Simeonstift Trier."
},
{
"url": "https://kulturdb.de/bilder/lazarus_porta-nigra2_1926.jpg",
"quelle": "Max Lazarus: Blick durch ein Fenster der Porta Nigra auf St. Gangolf, 1926. © Stadtmuseum Simeonstift Trier."
},
{
"url": "https://kulturdb.de/bilder/trier_porta_nigra_1.jpg",
"quelle": "Internet"
},
{
"url": "https://kulturdb.de/bilder/trier_porta-nigra_eby.jpg",
"quelle": "© David W. Eby, Homepage"
},
{
"url": "https://kulturdb.de/bilder/trier_porta_nigra_02_iduhr.jpg",
"quelle": "© Inge Duhr, Trier, 2020."
}
],
"stand": "2020-07-06"
}