{"openapi":"3.1.0","info":{"title":"Skatefinder-Schnittstelle","version":"1.0","summary":"Inline-Skate-Strecken, Termine und Treffs, nur lesend.","description":"Lesende Schnittstelle von skatefinder, ohne Anmeldung, höchstens 60 Anfragen je Minute und Adresse. Texte, Termine, Treffs und Bewertungen stehen unter CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/), Namensnennung: skatefinder.smarterwolf.de (WOLFSOFT). Streckenlinien, GPX-Dateien und Höhenprofile stehen unter ODbL 1.0 (https://opendatacommons.org/licenses/odbl/1-0/), © OpenStreetMap-Mitwirkende. Dokumentation: https://skatefinder.smarterwolf.de/api","license":{"name":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/"}},"servers":[{"url":"https://skatefinder.smarterwolf.de"}],"paths":{"/api/strecken":{"get":{"summary":"Strecken im Umkreis","description":"Veröffentlichte Strecken im Umkreis eines Punktes, nach Entfernung sortiert, mit vereinfachter Linie (GeoJSON).","operationId":"strecken_liste_api_strecken_get","parameters":[{"name":"lat","in":"query","required":false,"schema":{"type":"number","maximum":90,"minimum":-90,"default":50.4286,"title":"Lat"}},{"name":"lon","in":"query","required":false,"schema":{"type":"number","maximum":180,"minimum":-180,"default":7.4616,"title":"Lon"}},{"name":"radius_km","in":"query","required":false,"schema":{"type":"number","maximum":1000,"exclusiveMinimum":0,"default":50,"title":"Radius Km"}},{"name":"min_asphalt","in":"query","required":false,"schema":{"type":"number","maximum":1,"minimum":0,"default":0,"title":"Min Asphalt"}},{"name":"laenge_min_km","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Laenge Min Km"}},{"name":"laenge_max_km","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Laenge Max Km"}},{"name":"hm_max","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Hm Max"}},{"name":"rundkurs","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Rundkurs"}},{"name":"schwierigkeit_max","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":3,"minimum":0},{"type":"null"}],"title":"Schwierigkeit Max"}},{"name":"art","in":"query","required":false,"schema":{"anyOf":[{"enum":["dauerhaft","aktionstag"],"type":"string"},{"type":"null"}],"title":"Art"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Strecken Liste Api Strecken Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/strecken/{slug}":{"get":{"summary":"Eine Strecke","description":"Alle Angaben zu einer Strecke: Linie, Abschnitte mit Belag, Höhenprofil, Warnungen, Wegpunkte.","operationId":"strecke_detail_api_strecken__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Strecke Detail Api Strecken  Slug  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/strecke/{slug}.gpx":{"get":{"summary":"GPX-Datei einer Strecke","description":"Strecke mit Höhen und Wegpunkten als GPX 1.1. Die Linie stammt aus OpenStreetMap (ODbL 1.0).","operationId":"strecke_gpx_strecke__slug__gpx_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/termine":{"get":{"summary":"Termine","description":"Skate-Termine ab einem Stichtag (Standard: heute), aufsteigend nach Datum.","operationId":"termine_api_termine_get","parameters":[{"name":"ab","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Ab"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Termine Api Termine Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/termine.ics":{"get":{"summary":"Termine als Kalender","description":"Alle kommenden Termine als iCalendar (RFC 5545), zum Abonnieren im Kalender.","operationId":"termine_ics_api_termine_ics_get","responses":{"200":{"description":"Successful Response","content":{"text/calendar":{}}}}}},"/api/termine/{id}.ics":{"get":{"summary":"Ein Termin als Kalendereintrag","description":"Ein einzelner Termin als iCalendar-Datei.","operationId":"termin_ics_api_termine__id__ics_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/calendar":{}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/orte":{"get":{"summary":"Ortssuche","description":"Orte nach Namensanfang, für die Eingabe von Startpunkten; höchstens 8 Treffer.","operationId":"orte_api_orte_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","default":"","title":"Q"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Orte Api Orte Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}