Schnittstelle (API)
Die Termine und Vereine des Fasnettrackers zum Weiterverwenden — kostenlos, ohne Schlüssel und ohne Anmeldung.
Es gibt drei Wege, die Termine auf eine andere Seite zu bringen, nach Aufwand geordnet. Das Widget ist ein fertiges Fenster zum Einfügen per <iframe>. Der Kalender lässt sich in Google, Apple oder Outlook abonnieren. Und die Schnittstelle liefert die Daten als JSON, für alle, die sie im eigenen Design zeigen oder in ein anderes System übernehmen wollen. Den fertigen Code für die ersten beiden gibt es auf jeder Vereins- und Stadtseite unter „Einbinden“; diese Seite beschreibt den dritten.
Grundsätzliches
Alle Adressen beginnen mit https://www.fasnettracker.de/api/v1 und antworten auf GET mit JSON in UTF-8. Abrufen darf jede Seite, auch direkt aus dem Browser (Access-Control-Allow-Origin: *). Die Daten werden einmal täglich von den Seiten der Vereine gesammelt; die Antworten werden sechs Stunden zwischengespeichert. Öfter abzurufen bringt also nichts Neues — einmal je Seitenaufruf oder einmal in der Stunde auf eurem Server ist reichlich.
Jede Antwort trägt oben stand (wann die Daten zuletzt zusammengestellt wurden) und hinweis. Zeiten sind ISO-Zeitpunkte in UTC; für die Anzeige stehen daneben tag und uhrzeit schon in deutscher Zeit. Eine Abfrage mit Fehler antwortet mit 400 oder 404 und einem Feld fehler. Die Form ist unter v1 festgeschrieben: was sich daran ändern müsste, bekommt eine neue Version, und die alte bleibt stehen.
Die Endpunkte
Zum Aufklappen: Parameter, Beispiele, die Felder der Antwort — und unten in jedem Abschnitt eine Fläche zum Ausprobieren. Wer sich Termine in der Terminliste zusammenfiltert, findet dort unter „Als API“ dieselbe Fläche, schon mit seinen Filtern.
Alle Parameter sind optional und kombinierbar.
verein | Kennung eines Vereins, wie sie in der Adresse seiner Vereinsseite steht ( |
stadt | Eine Gemeinde, wie auf der Stadtseite geschrieben. Andere Schreibweisen („elzach“) und Ortsteile führen auf die Gemeinde; welche gemeint war, steht in der Antwort unter |
typ | Eine Art, siehe die Liste unten. |
von | Erster Tag, |
bis | Letzter Tag, |
anzahl | Höchstens so viele Termine. Vorgabe 100, höchstens 1000. |
format |
|
Beispiele
https://www.fasnettracker.de/api/v1/termine?stadt=Elzach&anzahl=5 https://www.fasnettracker.de/api/v1/termine?verein=narrenzunft-elzach-elzach https://www.fasnettracker.de/api/v1/termine?typ=umzug&von=2027-02-06&bis=2027-02-06 https://www.fasnettracker.de/api/v1/termine?stadt=Rottweil&format=ics
Antwort
{
"version": 1,
"stand": "2027-01-20T05:12:44.120Z",
"quelle": "https://www.fasnettracker.de",
"hinweis": "Angaben ohne Gewähr, …",
"filter": { "verein": null, "stadt": "Elzach", "typ": null, "von": null, "bis": null },
"gesamt": 14,
"anzahl": 5,
"termine": [
{
"id": "narrenzunft-elzach-2027-02-07-grosser-fasnetsumzug-3f9a",
"titel": "Großer Fasnetsumzug",
"typ": "umzug",
"typName": "Umzug",
"start": "2027-02-07T13:00:00.000Z",
"tag": "2027-02-07",
"uhrzeit": "14:00",
"verein": { "id": "narrenzunft-elzach-elzach", "name": "Narrenzunft Elzach" },
"ort": { "stadt": "Elzach", "plz": "79215", "lat": 48.17, "lng": 8.07 },
"stichworte": ["umzug", "fasnetsumzug"],
"url": "https://www.fasnettracker.de/v/narrenzunft-elzach-2027-02-07-grosser-fasnetsumzug-3f9a"
}
]
}id | Die Kennung des Termins. Sie bleibt gleich, solange Verein, Tag und Titel gleich bleiben — taugt also zum Abgleichen. |
titel | Wie der Verein den Termin nennt. |
typ, typName | Die Art, als Schlüssel und als Anzeigetext. |
start | Beginn als ISO-Zeitpunkt in UTC. |
tag | Der Tag in deutscher Zeit, |
uhrzeit | Beginn in deutscher Zeit, |
verein | Kennung und Name des ausrichtenden Vereins, oder |
ort | Gemeinde, PLZ und Koordinaten (WGS 84). Die Koordinaten sind oft nur ortsgenau, nicht auf die Strasse. |
stichworte | Suchwörter, die nicht im Titel stehen. |
url | Die Terminseite beim Fasnettracker mit Ort, Quelle und allen Einzelheiten — dorthin bitte verlinken. |
Arten (typ)
umzug | Umzug |
zunftabend | Zunftabend |
hemdglonker | Hemdglonker |
narrenbaum | Narrenbaumstellen |
ball | Ball und Party |
brauchtumsabend | Brauchtumsabend |
kinderfasnet | Kinderfasnet |
verbrennung | Hexen- und Strohmannverbrennung |
sonstiges | Sonstiges |
Alle Vereine, alphabetisch; mit ?stadt= nur die einer Gemeinde, etwa /api/v1/vereine?stadt=Elzach. Je Verein: id, name, stadt, ortsteil, plz, lat/lng, gegruendet, art (nur wenn von Hand gepflegt), kommendeTermine, vomVereinGepflegt und url.
Ein einzelner Verein mit allem aus der Liste, dazu homepage, logo (die Adresse des Bildes), beschreibung und kanaele (Instagram, Facebook, YouTube, TikTok), auftritte (wo der Verein demnächst bei anderen zu Gast ist: start, titel, stadt, ort, ausrichter) und darunter seine kommenden Termine im selben Format wie oben. ?anzahl= begrenzt die Termine. Eine Mailadresse steht nicht darin — die gibt es nur auf der Vereinsseite.
Für alle, die eine Frage in Worten haben statt fertiger Filter, etwa ein Sprachmodell oder ein Chatbot. Die Anfrage geht in q und wird genauso verstanden wie im Suchfeld der Startseite: alle Wörter müssen passen, Tippfehler und fehlende Umlaute werden verziehen, und Zeitwörter wie heute, wochenende, samstag, februar 2027 oder 6.2.2027 werden zum Zeitraum. Ohne Zeitwort sucht sie ab jetzt.
q | Die Suchanfrage, höchstens 200 Zeichen. Pflicht. |
anzahl | Höchstens so viele Termine, Vorgabe 25. |
Beispiele
https://www.fasnettracker.de/api/v1/suche?q=umzug+elzach https://www.fasnettracker.de/api/v1/suche?q=guggetreffen+februar https://www.fasnettracker.de/api/v1/suche?q=ball+6.2.2027
Antwort
zeitraum | Was als Zeit erkannt wurde: |
orte | Gemeinden, deren Name die Anfrage ist, mit |
vereine | Passende Vereine, höchstens fünf, Felder wie bei |
gesamt, termine | Wie viele Termine passen und die besten davon, nach Güte sortiert, Felder wie bei |
tipp | Nur wenn gar nichts gefunden wurde: was man stattdessen versuchen kann. |
Weil heute nicht als Datum in der Adresse steht, wird die Antwort nur eine Stunde zwischengespeichert statt sechs.
Gedacht für den, der die Schnittstelle mit curl oder einem Skript erkundet: dieselben Angaben wie auf dieser Seite, nur kürzer, dazu je Endpunkt eine Beispieladresse, die gerade etwas liefert.
Ein Beispiel zum Einfügen
Das zeigt die nächsten zehn Termine in Elzach als Liste, in der Schrift und den Farben der Seite, in die es eingefügt wird. Die Titel stammen von fremden Seiten; darum textContent und nicht innerHTML.
<ul id="fasnet-termine"></ul>
<script>
fetch("https://www.fasnettracker.de/api/v1/termine?stadt=Elzach&anzahl=10")
.then((antwort) => antwort.json())
.then(({ termine }) => {
const liste = document.getElementById("fasnet-termine");
for (const t of termine) {
const zeile = document.createElement("li");
const datum = t.tag.split("-").reverse().join(".");
zeile.textContent = datum + (t.uhrzeit ? ", " + t.uhrzeit + " Uhr" : "") + ": ";
const link = document.createElement("a");
link.href = t.url;
link.textContent = t.titel; // textContent, nie innerHTML
zeile.append(link);
liste.append(zeile);
}
});
</script>Bedingungen
Die Nutzung ist kostenlos. Zeigt bitte bei den Daten einen Link auf den Fasnettracker, am besten je Termin auf seine url — dort steht, woher die Angabe stammt und wie verlässlich sie ist. Alle Angaben ohne Gewähr; maßgeblich ist die Seite des Vereins. Ein Teil der Termine stammt aus dem Open Data Pool Baden-Württemberg und steht unter CC BY. Logos und Flyer gehören den Vereinen; wir geben nur die Adresse weiter, und wer sie zeigt, klärt die Rechte selbst.
Eine Maschinenübersicht gibt es unter /api/v1. Fragen, Wünsche oder ein Fehler in den Daten: über das Kontaktformular.