Basics
- Base URL
https://kulturdb.de/api/v1
- Access
- read-only (HTTP
GET), no login and no API key
- Formats
- JSON (RFC 8259), GeoJSON (RFC 7946,
application/geo+json), character set UTF-8
- Language
- Field names, filter values and texts are German.
/objekte/{id}?sprache=en (or sprache=fr, sprache=nl) returns the classification terms in English (or French, Dutch).
- Coordinates
- WGS 84 (EPSG:4326), order in GeoJSON
[longitude, latitude]
- Browser access
- CORS is enabled (
Access-Control-Allow-Origin: *) – usable directly from web applications
- Caching
- Responses contain
Cache-Control headers (1–60 minutes)
- Errors
- appropriate HTTP status (
400 invalid parameters, 404 not found) with {"error": "…"}
- Versioning
- The version is part of the path (
/v1); changes that break existing applications only appear in a new version.
- Object URLs
- The object ID is permanent:
https://kulturdb.de/objekt/{id}, English page https://kulturdb.de/en/objekt/{id}
Endpoints
GET /objekte.geojson
Objects as a GeoJSON FeatureCollection – ideal for map clients (NETGIS, OpenLayers, Leaflet, QGIS). All filters can be combined.
| Parameter | Value | Meaning |
bbox | minLon,minLat,maxLon,maxLat | only objects within the map extent (WGS 84) |
limit | 1 – 50000 | maximum number (default 5000) |
| + all filters |
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}
A single object with coordinates, short description, pictures and picture credits. Optional sprache=en, sprache=fr or sprache=nl: classification terms and page URL in that language. Example response
https://kulturdb.de/api/v1/objekte/99
https://kulturdb.de/api/v1/objekte/99?sprache=en
GET /punkte
Very compact list of points for cluster maps with many thousands of objects:
{"felder": ["id","lat","lon","titel","bereich","kategorie"], "bereiche": […], "kategorien": […], "daten": [[…], …]} –
bereich and kategorie are indexes into the lists bereiche and kategorien (-1 = none). All filters are possible.
https://kulturdb.de/api/v1/punkte?landkreis=Vulkaneifel
GET /vorschlaege
Quick search (up to 10 hits) for input fields with suggestions. Parameter q, at least 2 characters.
https://kulturdb.de/api/v1/vorschlaege?q=porta
GET /
Machine-readable overview of all endpoints.
https://kulturdb.de/api/v1
Examples
QGIS
Layer › Add Layer › Add Vector Layer, source type Protocol: HTTP(S), as URI for example:
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 + ' castles');
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
})
});
Example response /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/en/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"
}