trailstatus Trails eintragen

Trailstatus für deine App

Alle Trails, Parks und ihr aktueller Status als JSON. Für nicht-kommerzielle Projekte kostenlos, mit einem Link zu trailstatus.de als Quelle.

Zugang

Schreib kurz, was du bauen willst, an hallo@trailstatus.de. Den Schlüssel schickst du im Header x-api-key mit. 1.000 Anfragen pro Tag sind frei.

curl -H "x-api-key: DEIN-SCHLÜSSEL" \
  "https://trailstatus.de/api/trails?status=open&limit=20"
{
  "MESSAGES": ["Trails erfolgreich abgerufen."],
  "DATA": [ { "id": "trail-…", "name": "…", "status": "open", … } ],
  "IS_ERROR": false,
  "COUNT": 20,
  "TOTAL": 87, "LIMIT": 20, "OFFSET": 0,
  "ATTRIBUTION": { "text": "Daten: trailstatus.de", "url": "https://trailstatus.de/" }
}

DATA ist immer eine Liste, auch bei einem einzelnen Trail. Fehler erkennst du am HTTP-Status und an IS_ERROR.

Quellenangabe

Wer die Daten zeigt, nennt trailstatus.de als Quelle. Das ist Bedingung für den kostenlosen Zugang.

  • Websites: „Daten: trailstatus.de“ sichtbar in der Nähe der Daten, mit einem normalen Link auf https://trailstatus.de/ oder auf die Seite des jeweiligen Trails (Feld url).
  • Apps: „Daten: trailstatus.de“ im Info- oder Quellenbereich der App, wenn möglich als antippbarer Link.
  • Stand: Zeig zu jedem Status an, wann er zuletzt gesetzt wurde (status_updated). Ein Status ohne Datum führt Rider in die Irre, wenn er ein paar Wochen alt ist.

Jede erfolgreiche Antwort enthält dafür das Feld ATTRIBUTION mit Text und Link. Für Websites reicht dieser Schnipsel:

<p class="quelle">Daten: <a href="https://trailstatus.de/">trailstatus.de</a>, Stand 26.10.2026</p>

Das Datum kommt aus status_updated des jeweiligen Trails. Für kommerzielle Projekte und alles, was über diese Seite hinausgeht, gelten Nutzungsbedingungen auf Anfrage an hallo@trailstatus.de.

Endpunkte

GET /api/trails

Alle Trails mit Status, sortiert nach Park und Name.

ParameterWerteBedeutung
statusopen, caution, closed, unknownNur Trails mit diesem Status
difficultySUPER_EASY, EASY, MEDIUM, HARDGrün, Blau, Rot, Schwarz
parksubregion-…Nur Trails eines Parks oder Spots
regionregion-…Nur Trails einer Region
qTextSuche in Trail-, Park-, Regions- und Betreibernamen
limit1 bis 100Einträge pro Seite, Standard 100
offsetab 0Für die nächste Seite

GET /api/trails/{id}

Ein Trail mit status, status_name, status_text (Notiz vom Betreiber), status_updated (ISO 8601), difficulty, Länge und Höhenmeter in Metern, Koordinaten, subregion_name und url.

GET /api/regions

Alle Regionen mit Trails, mit Anzahl der Parks, Trails und offenen Trails. Optional q für die Suche.

GET /api/regions/{id}

Eine Region mit ihren Parks und Spots inklusive Koordinaten.

HTTP-Status

200Alles gut
400Ein Parameter hat einen ungültigen Wert. Die Meldung sagt, welcher.
401Schlüssel fehlt, ist falsch oder abgelaufen
404Trail, Region oder Endpunkt gibt es nicht
429Tageslimit erreicht. Retry-After sagt, wann es weitergeht.