(Liste und Details für externe Websites)
Veröffentlichung: Oktober 2026 | Für: Entwickler & Integratoren | Fairgate FSA-API (v2.0)
Was ist neu?
Die Fairgate FSA-API bietet neu zwei lesende Schnittstellen für Events: eine Eventsliste und die Eventdetails pro Organisation. Externe Websites können damit Events, Preise, den Anmeldestatus und die Inhalte der Ausschreibung eines Vereins anzeigen. Authentifizierung, Versionierung und Gateway funktionieren genau wie bei der Contacts-API (v2.0).
Zurückgegeben werden nur veröffentlichte, öffentliche Events. Was ein Verein in den Einstellungen der Ausschreibung ausblendet, bleibt auch in der Antwort ausgeblendet. Sie können nach Status und Zeitraum filtern, ein Event samt Teilevents laden und alle Texte in der gewünschten Sprache erhalten.
Voraussetzungen (und Umfang)
Das Eventmodul muss für die Organisation gebucht sein
Beide Schnittstellen sind nur lesend. Der Zugriff wird in der Verwaltung aktiviert (siehe Abschnitt 1), die Authentifizierung funktioniert wie bei der Contacts-API (v2.0).
Der Ablauf im Überblick
Wie aktiviere ich den API-Zugriff? (1)
Für Administratoren. Gehen Sie zu Einstellungen → FSA Service und öffnen Sie den Reiter Kontakte-/Events-API.
Stellen Sie API aktivieren auf Aktiviert.
Erstellen Sie weiter unten auf derselben Seite Ihre Zugriffstoken.
Eine Aktivierung und ein Satz Zugriffstoken gelten für die Kontakte- und die Events-Schnittstelle. Die Events-API wird gemäss der FSA-API vorkonfiguriert bereitgestellt.
Abbildung 1: Einstellungen → FSA Service → Kontakte-/Events-API mit dem Schalter «API aktivieren»
Wie rufe ich die Eventsliste ab? (2)
Für Entwickler. Senden Sie eine GET-Anfrage, mit Ihrer Organisations-ID als {oid}:
GET /fsa/v2.0/event/{oid}/events
Parameter | Werte | Funktion |
pageNo | Zahl, z. B. 1 | Seite, die zurückgegeben wird. |
pageLimit | Zahl, z. B. 32 | Anzahl Events pro Seite. |
status | open, running, ended, cancelled (durch Komma getrennt) | Zeigt nur Events mit diesem Ausführungsstatus. |
time_filter | nextmonth, next3months, nextyear, pastevents (Gross-/Kleinschreibung egal) | Zeigt nur Events in diesem Zeitraum. |
Die Events sind nach dem frühesten Startdatum sortiert, die nächsten zuerst.
Vergangene Events werden nicht angezeigt, ausser Sie verwenden time_filter=pastevents.
Die Antwort enthält am Ende einen pagination-Block: total_records, total_pages, page_no, page_limit sowie Links zur nächsten und vorherigen Seite.
Beispiel
?status=open&time_filter=nextmonth liefert offene Events, die ab heute bis zum gleichen Datum im nächsten Monat stattfinden. Beide Filter lassen sich kombinieren.
Welche Events werden zurückgegeben? (3)
Nur Events mit publication_status = published.
Interne Events und Events für eingeladene Kontakte werden nie zurückgegeben. In der Liste erscheinen nur öffentliche Events.
Links (detail_url und die Anmelde-url) zeigen immer auf die Hauptdomain der Organisation.
Was enthält ein Event in der Liste? (4)
Feld | Inhalt |
id, scope, publication_status | Event-ID, wer das Event sehen darf und ob es veröffentlicht ist. |
execution_status | open, running, ended oder cancelled. |
hierarchy | parent_id, root_id (das Top-Event), has_children und children_count. |
title, summary | Texte in der gewünschten Sprache. |
location, categories | Die Sichtbarkeit folgt den Einstellungen des Vereins (siehe Abschnitt 5). |
dates | Alle Termine des Events: id, start, end, door_opening und full_day. |
media | Bild-Links aus der Ausschreibung. |
pricing | Preisübersicht des Events (siehe Abschnitt 6). |
seats | max_participants: ob eine Begrenzung gesetzt ist und wie hoch sie ist. |
registration | status, closes_at, url und subscription_status (siehe Abschnitt 7). |
documents_count | Anzahl der in der Ausschreibung hochgeladenen Dokumente. |
detail_url | Link zur Eventsseite. |
Wie beeinflussen die Einstellungen des Vereins die Liste? (5)
Vereine legen in den Einstellungen der Ausschreibung fest, was angezeigt wird. Die API richtet sich danach:
Feld | Wenn in den Einstellungen der Ausschreibung ausgeblendet |
location | value ist null. Wenn angezeigt, folgt der Wert der gewählten Anzeigeeinstellung: vollständiger Standort, nur Ort oder benutzerdefinierter Text. |
categories | data ist null. |
pricing | Alle Preisfelder sind null. |
pricing.open_seats | count ist null. |
Bitte beachten
Ausgeblendete Felder werden nie entfernt. Der Schlüssel bleibt mit dem Wert null in der Antwort, damit die Struktur immer gleich ist.
Wie werden Eintrittspreise in der Liste angezeigt? (6)
pricing_type ist single, free oder range. tickets_count hat in allen zutreffenden Fällen einen Wert.
Tickets des Events | pricing_type | ticket_price | price_from | price_to |
1 Ticket | single | Ticketpreis | null | null |
Mehr als 1 Ticket, unterschiedliche Preise | range | null | Tiefster Preis | Höchster Preis |
Mehr als 1 Ticket, gleicher Preis | range | null | Gleicher Preis | Gleicher Preis |
Alle Tickets sind kostenlos | free | null | null | null |
Mix aus kostenlosen und bezahlten Tickets | range | null | 0 | Höchster Preis |
Bei free ist auch currency null.
open_seats.count zeigt die noch verfügbaren Plätze, ausser der Verein blendet den Wert aus (siehe Abschnitt 5).
Was bedeutet der Anmeldestatus? (7)
Jedes Event in der Liste hat registration.subscription_status. Es verwendet dieselben Werte wie die Eventdetails:
Wert | Bedeutung |
subscription_possible | Die Anmeldung ist offen. |
sold_out | Alle Plätze sind vergeben. |
no_subscription_needed | Es ist keine Anmeldung nötig. |
execution_uncertain | Es ist noch nicht sicher, ob das Event stattfindet. |
subscription_closed | Die Anmeldung ist geschlossen. |
ongoing | Das Event findet gerade statt. |
past_event | Das Event ist vorbei. |
event_is_cancelled | Das Event wurde abgesagt. |
Wie lade ich ein einzelnes Event? (8)
Für Entwickler. Senden Sie eine GET-Anfrage mit der Event-ID:
GET /fsa/v2.0/event/{oid}/events/{eventId}
Die Details enthalten alles aus der Liste und zusätzlich:
hierarchy.path und hierarchy.depth, die zeigen, wo das Event in der Eventhierarchie steht.
responsible_persons: ID, Vor- und Nachname, Funktion, Mobilnummer und E-Mail.
pricing.tickets: Name, Preis, Status, MWST-Satz und Kapazität (max_bookings, available_bookings, waiting_list_count). Deaktivierte Tickets werden weggelassen.
pricing.resource_pricing: Zusatzleistungen, mit Preis, Beschreibung und MWST-Satz.
registration: opens_at, closes_at, approval_required, waiting_list_enabled und subscription_status.
Der neue Block announcement (siehe Abschnitt 10).
Tickets sind mit ticket_type gekennzeichnet:
ticket_type | Bedeutung |
bundle | Eigenständiges Ticket ohne Zusatztickets. |
composite | Ticket mit Zusatztickets in sub_tickets. |
single | Zusatzticket eines Composite-Tickets. |
Was kann ein Verein in den Eventdetails ausblenden? (9)
Die Einstellungen der Infobox und der Ankündigung steuern die Details. Ausgeblendete Felder behalten ihren Schlüssel und werden auf null gesetzt, wie in Abschnitt 5.
Feld | Wenn ausgeblendet |
dates | data ist null. |
location | value ist null. Wenn angezeigt, folgt der Wert der Standort-Anzeigeeinstellung, ein benutzerdefinierter Wert wird also so zurückgegeben, wie er erfasst wurde. |
categories | data ist null. |
pricing | Das Flag visible zeigt die Einstellung. Die Ticket-Parameter bleiben in der Antwort. |
pricing.resource_pricing | data ist null. |
registration.closes_at | value ist null (Anmeldefrist). |
registration.subscription_status | value ist null. |
announcement.text_sections | Ausgeblendete Abschnitte haben visible: false, title und content sind null. |
announcement.contact | value ist null. |
announcement.info_box.subscription_status | value ist null. |
announcement.info_box.custom_rows | Ausgeblendete Zeilen haben visible: false, label und content sind null. |
Was enthält der Block «announcement»? (10)
Der Block announcement enthält die Inhalte der Ausschreibungsseite des Vereins:
media: in den Einstellungen der Ausschreibung hochgeladene Bilder.
documents: in den Einstellungen der Ausschreibung hochgeladene Dokumente (ID, Name, Link, Typ).
text_sections: vom Administrator hinzugefügte eigene Textabschnitte.
contact: Kontaktangaben als Freitext.
info_box: der Anmeldestatus und vom Administrator definierte eigene Zeilen.
Wie lade ich Teilevents? (11)
Ergänzen Sie die Anfrage für die Details um expand=children. Mit depth legen Sie fest, wie viele Ebenen Sie möchten:
GET /fsa/v2.0/event/{oid}/events/{eventId}?expand=children&depth=2
Teilevents erscheinen in einer Liste children innerhalb des Events. Jedes hat die vollständige Struktur eines Events.
Jedes Teilevent hat ihre eigene hierarchy (parent_id, root_id, path und depth).
Sichtbarkeitseinstellungen, Veröffentlichungsregeln und Sprache gelten für Teilevents genauso.
meta.expansion zeigt, was erweitert wurde, sowie die angeforderte und die gelieferte Tiefe.
Ohne expand erhalten Sie nur has_children und children_count.
Beispiel
Die Tennis-Meisterschaft hat drei Teilevents. Eine davon, das Herren-Einzel, hat auf Ebene 2 eigene Teilevents (Viertelfinale und Halbfinale).
Welche Fehler können auftreten? (12)
Situation | Schnittstelle | Antwort |
Eventmodul ist nicht gebucht | Liste und Details | 403 Forbidden |
Event ist intern oder für eingeladene Kontakte | Details | 403 Access Restricted |
Event existiert nicht | Details | 404 Not Found |
Was sollte ich sonst noch wissen? (13)
Gut zu wissen
Sprachabhängige Felder werden in der Sprache zurückgegeben, die Sie im Header der Anfrage übergeben. Fehlt ein Text in dieser Sprache, erhalten Sie die Version in der Hauptsprache des Vereins.
Bitte beachten
Der frühere Schlüssel status heisst neu execution_status (open, running, ended, cancelled), damit klarer ist, was er beschreibt.
