Inhaltsverzeichnis

v1.0.0 OpenAPI 3.1.0

MeetAgain API

Programmatischer Zugriff auf öffentliche Events, mitgliederbezogene Aktionen (Zusagen, Kommentare, Bild-Upload) sowie die Bereiche Plattform-Inhalte, Überwachung und Protokolle. Für nicht-öffentliche Endpunkte ist ein Personal Access Token (PAT) erforderlich.

Server: / Spec herunterladen: JSON YAML

Authentifizierung

Personal Access Token

Authentifiziere dich gegen die API mit einem Personal Access Token - einem langlebigen Bearer-Token, das an dein Konto gebunden ist.

Fuer eigene CLIs, Skripte oder Ops-Jobs. Erzeuge ein langlebiges Bearer-Token auf deiner Token-Seite und widerrufe es dort jederzeit.

Header: Authorization: Bearer mapat_...

Handelt als: du selbst (der Token-Aussteller)

cms

Bearbeitung von CMS-Seiten und -Blöcken. Nur für Benutzer mit ROLE_ADMIN.

GET /api/v1/cms/pages Alle CMS-Seiten mit zugehöriger Gruppe und Blockanzahl je Sprache auflisten

Alle CMS-Seiten mit zugehöriger Gruppe und Blockanzahl je Sprache auflisten

Antworten

Code Beschreibung
200 Alle CMS-Seiten, neueste zuerst CmsPageSummaryList
401 Bearer-Token fehlt oder ist ungültig
403 Unzureichende Rolle oder unzureichender Geltungsbereich

Beispiel-Anfrage

curl '/api/v1/cms/pages' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
GET /api/v1/cms/block-types Katalog der Blocktypen und der Felder, die jeder akzeptiert

Katalog der Blocktypen und der Felder, die jeder akzeptiert

Antworten

Code Beschreibung
200 Felddefinitionen, gegen die die Schreib-Endpunkte prüfen CmsBlockTypeCatalog
401 Bearer-Token fehlt oder ist ungültig
403 Unzureichende Rolle oder unzureichender Geltungsbereich

Beispiel-Anfrage

curl '/api/v1/cms/block-types' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
DELETE /api/v1/cms/blocks/{blockId} Einen Block löschen

Einen Block löschen

Parameter

Name In Typ Beschreibung
blockId * path integer

Antworten

Code Beschreibung
204 Block gelöscht
401 Bearer-Token fehlt oder ist ungültig
403 Unzureichende Rolle oder unzureichender Geltungsbereich
404 Block nicht gefunden

Beispiel-Anfrage

curl -X DELETE '/api/v1/cms/blocks/1' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
PATCH /api/v1/cms/blocks/{blockId} Felder über einen gespeicherten Block legen

Felder über einen gespeicherten Block legen

Die Nutzdaten werden über die gespeicherten gelegt, sodass ein Teilkörper nur die genannten Felder ändert.

Parameter

Name In Typ Beschreibung
blockId * path integer

Request Body

erforderlich

Content-Type: application/json

Name Typ Beschreibung
type any Name oder numerische ID des Blocktyps; Standard ist der gespeicherte Typ
payload object

Antworten

Code Beschreibung
200 Der gespeicherte Block, nach Hydrierung und Bereinigung CmsBlockSummary
400 Fehlerhafter Anfragekörper
401 Bearer-Token fehlt oder ist ungültig
403 Unzureichende Rolle oder unzureichender Geltungsbereich
404 Block nicht gefunden
422 Unbrauchbarer Blocktyp oder fehlendes Pflichtfeld ValidationErrorResponse

Beispiel-Anfrage

curl -X PATCH '/api/v1/cms/blocks/1' \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"type":"Text","payload":"value"}'
GET /api/v1/cms/pages/{id}/blocks Blöcke einer Seite in einer Sprache, in Reihenfolge

Blöcke einer Seite in einer Sprache, in Reihenfolge

Parameter

Name In Typ Beschreibung
id * path integer
locale query string Zweibuchstabiger Sprachcode; Standard ist die konfigurierte Standardsprache

Antworten

Code Beschreibung
200 Blöcke in Prioritätsreihenfolge CmsBlockList
401 Bearer-Token fehlt oder ist ungültig
403 Unzureichende Rolle oder unzureichender Geltungsbereich
404 Seite nicht gefunden
422 Unbekannte Sprache

Beispiel-Anfrage

curl '/api/v1/cms/pages/1/blocks?locale=en' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
POST /api/v1/cms/pages/{id}/blocks Einen Block an eine Seite in einer Sprache anhängen

Einen Block an eine Seite in einer Sprache anhängen

Parameter

Name In Typ Beschreibung
id * path integer

Request Body

erforderlich

Content-Type: application/json

Name Typ Beschreibung
locale string
type any Name oder numerische ID des Blocktyps aus dem Blocktyp-Katalog
payload object

Antworten

Code Beschreibung
201 Der gespeicherte Block, nach Hydrierung und Bereinigung CmsBlockSummary
400 Fehlerhafter Anfragekörper
401 Bearer-Token fehlt oder ist ungültig
403 Unzureichende Rolle oder unzureichender Geltungsbereich
404 Seite nicht gefunden
422 Unbekannte Sprache, unbrauchbarer Blocktyp oder fehlendes Pflichtfeld ValidationErrorResponse

Beispiel-Anfrage

curl -X POST '/api/v1/cms/pages/1/blocks' \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"locale":"en","type":"Text","payload":"value"}'
POST /api/v1/cms/blocks/{blockId}/move Einen Block innerhalb seiner Seite und Sprache eine Position nach oben oder unten verschieben

Einen Block innerhalb seiner Seite und Sprache eine Position nach oben oder unten verschieben

Parameter

Name In Typ Beschreibung
blockId * path integer

Request Body

erforderlich

Content-Type: application/json

Name Typ Beschreibung
direction string

Antworten

Code Beschreibung
200 Die Seitenblöcke in ihrer neuen Reihenfolge CmsBlockList
400 Fehlerhafter Anfragekörper
401 Bearer-Token fehlt oder ist ungültig
403 Unzureichende Rolle oder unzureichender Geltungsbereich
404 Block nicht gefunden
422 Andere Richtung als up oder down

Beispiel-Anfrage

curl -X POST '/api/v1/cms/blocks/1/move' \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"direction":"value"}'

images

Bild-Alternativtexte je Sprache. Nur für Benutzer mit ROLE_ADMIN.

PUT /api/v1/images/{id}/alt Alt-Text für ein Bild speichern, nach Sprache abgelegt

Alt-Text für ein Bild speichern, nach Sprache abgelegt

Parameter

Name In Typ Beschreibung
id * path integer

Request Body

erforderlich

Content-Type: application/json

Name Typ Beschreibung
alt object Sprache => Alt-Text; leerer String löscht den Eintrag

Antworten

Code Beschreibung
200 Aktualisierter Eintrag mit neu berechneten erforderlichen und fehlenden Sprachen MissingAltImageItem
400 Fehlerhafter Anfragekörper
401 Bearer-Token fehlt oder ist ungültig
403 Unzureichende Rolle oder unzureichender Geltungsbereich
404 Bild nicht gefunden
422 Eine Sprache außerhalb der für das Bild erforderlichen Menge

Beispiel-Anfrage

curl -X PUT '/api/v1/images/1/alt' \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"alt":"value"}'
GET /api/v1/images/missing-alt Bilder ohne Alt-Text je Sprache auflisten (Keyset)

Bilder ohne Alt-Text je Sprache auflisten (Keyset)

Parameter

Name In Typ Beschreibung
after_id query integer Keyset-Cursor: nur Bilder mit größerer ID prüfen
limit query integer Pro Seite geprüfte Kandidaten (Treffer können weniger sein)
Standard: 50

Antworten

Code Beschreibung
200 Seite mit Bildern, denen in mindestens einer erforderlichen Sprache der Alt-Text fehlt MissingAltImageList
401 Bearer-Token fehlt oder ist ungültig
403 Unzureichende Rolle oder unzureichender Geltungsbereich

Beispiel-Anfrage

curl '/api/v1/images/missing-alt?after_id=1&limit=1' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
GET /api/v1/images/{id}/content Verkleinerte Vorschau des Originalbilds ausliefern

Verkleinerte Vorschau des Originalbilds ausliefern

Parameter

Name In Typ Beschreibung
id * path integer

Antworten

Code Beschreibung
200 Vorschau-Bytes (meist image/webp; bei fehlgeschlagener Umwandlung der ursprüngliche Medientyp)
401 Bearer-Token fehlt oder ist ungültig
403 Unzureichende Rolle oder unzureichender Geltungsbereich
404 Bild oder zugehörige Originaldatei nicht gefunden

Beispiel-Anfrage

curl '/api/v1/images/1/content' \
  -H "Authorization: Bearer $ACCESS_TOKEN"

security

Feed der Sicherheitsvorfälle. Nur lesend, nur für Benutzer mit ROLE_ADMIN.

GET /api/v1/security/incidents Aktuelle Sicherheitsvorfälle auflisten

Aktuelle Sicherheitsvorfälle auflisten

Parameter

Name In Typ Beschreibung
limit query integer
Standard: 100
since query string (date-time) ISO-8601-Zeitstempel als Untergrenze für endedAt

Antworten

Code Beschreibung
200 Liste der Vorfälle IncidentList
401 Bearer-Token fehlt oder ist ungültig
403 Unzureichende Rolle

Beispiel-Anfrage

curl '/api/v1/security/incidents?limit=1&since=value' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
GET /api/v1/security/incidents/{id} Sicherheitsvorfall mit Anbieterberichten abrufen

Sicherheitsvorfall mit Anbieterberichten abrufen

Parameter

Name In Typ Beschreibung
id * path integer

Antworten

Code Beschreibung
200 Details zum Vorfall IncidentDetail
401 Bearer-Token fehlt oder ist ungültig
403 Unzureichende Rolle
404 Vorfall nicht gefunden

Beispiel-Anfrage

curl '/api/v1/security/incidents/1' \
  -H "Authorization: Bearer $ACCESS_TOKEN"

seo

Suchmaschinen-Überwachung: Status, Probleme und Aktionen. Nur für Benutzer mit ROLE_ADMIN.

GET /api/v1/seo/status SEO-Zustand mit Veränderungen seit dem letzten Abruf

SEO-Zustand mit Veränderungen seit dem letzten Abruf

Parameter

Name In Typ Beschreibung
property query integer Property-ID; ohne Angabe wird die erste aktivierte verwendet

Antworten

Code Beschreibung
200 Kompakter aktueller Stand SeoStatus
401 Bearer-Token fehlt oder ist ungültig
403 Unzureichende Rolle oder unzureichender Geltungsbereich
404 Keine überwachte Property

Beispiel-Anfrage

curl '/api/v1/seo/status?property=1' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
GET /api/v1/seo/issues Erkannte SEO-Probleme auflisten

Erkannte SEO-Probleme auflisten

Parameter

Name In Typ Beschreibung
property query integer
filter query string
Standard: open

Antworten

Code Beschreibung
200 Liste der Probleme SeoIssueList
401 Bearer-Token fehlt oder ist ungültig
403 Unzureichende Rolle oder unzureichender Geltungsbereich
404 Keine überwachte Property

Beispiel-Anfrage

curl '/api/v1/seo/issues?property=1&filter=value' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
GET /api/v1/seo/actions Zuletzt protokollierte SEO-Maßnahmen auflisten

Zuletzt protokollierte SEO-Maßnahmen auflisten

Parameter

Name In Typ Beschreibung
limit query integer
Standard: 100

Antworten

Code Beschreibung
200 Liste der Maßnahmen SeoActionList
401 Bearer-Token fehlt oder ist ungültig
403 Unzureichende Rolle oder unzureichender Geltungsbereich

Beispiel-Anfrage

curl '/api/v1/seo/actions?limit=1' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
POST /api/v1/seo/actions SEO-Maßnahme für die spätere Zuordnung protokollieren

SEO-Maßnahme für die spätere Zuordnung protokollieren

Request Body

erforderlich

Content-Type: application/json

Name Typ Beschreibung
kind string
title string
detail string | null
git_sha string | null
issue_id integer | null
occurred_at string | null (date-time)

Antworten

Code Beschreibung
201 Die gespeicherte Maßnahme SeoAction
400 Fehlerhafter Anfragekörper
401 Bearer-Token fehlt oder ist ungültig
403 Unzureichende Rolle oder unzureichender Geltungsbereich
422 Unbekannte Maßnahmenart oder nicht lesbarer Zeitstempel

Beispiel-Anfrage

curl -X POST '/api/v1/seo/actions' \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"kind":"value","title":"value","detail":"value","git_sha":"value","issue_id":"value","occurred_at":"value"}'

logs

Cron- und E-Mail-Versandprotokolle. Nur lesend, nur für Benutzer mit ROLE_ADMIN.

GET /api/v1/logs/cron Aktuelle Einträge aus dem Cron-Protokoll auflisten

Aktuelle Einträge aus dem Cron-Protokoll auflisten

Parameter

Name In Typ Beschreibung
limit query integer
Standard: 100

Antworten

Code Beschreibung
200 Seitenweise Liste des Cron-Protokolls CronLogList
401 Bearer-Token fehlt oder ist ungültig
403 Unzureichende Rolle

Beispiel-Anfrage

curl '/api/v1/logs/cron?limit=1' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
GET /api/v1/logs/sendlog Einträge des E-Mail-Versandprotokolls auflisten

Einträge des E-Mail-Versandprotokolls auflisten

Parameter

Name In Typ Beschreibung
limit query integer
Standard: 100

Antworten

Code Beschreibung
200 Seitenweise Liste des Versandprotokolls SendlogList
401 Bearer-Token fehlt oder ist ungültig
403 Unzureichende Rolle

Beispiel-Anfrage

curl '/api/v1/logs/sendlog?limit=1' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
GET /api/v1/logs/cron/{id} Einen einzelnen Cron-Protokolleintrag abrufen

Einen einzelnen Cron-Protokolleintrag abrufen

Parameter

Name In Typ Beschreibung
id * path integer

Antworten

Code Beschreibung
200 Details zum Cron-Protokolleintrag CronLogDetail
401 Bearer-Token fehlt oder ist ungültig
403 Unzureichende Rolle
404 Cron-Protokolleintrag nicht gefunden

Beispiel-Anfrage

curl '/api/v1/logs/cron/1' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
GET /api/v1/logs/sendlog/{id} Einen einzelnen Eintrag des Versandprotokolls abrufen

Einen einzelnen Eintrag des Versandprotokolls abrufen

Parameter

Name In Typ Beschreibung
id * path integer

Antworten

Code Beschreibung
200 Details zum Versandprotokolleintrag SendlogDetail
401 Bearer-Token fehlt oder ist ungültig
403 Unzureichende Rolle
404 Eintrag im Versandprotokoll nicht gefunden

Beispiel-Anfrage

curl '/api/v1/logs/sendlog/1' \
  -H "Authorization: Bearer $ACCESS_TOKEN"

auth

Mit E-Mail und Passwort anmelden, um einen persönlichen Zugriffstoken zu erhalten

POST /api/v1/auth/login Anmelden und einen persönlichen Zugriffstoken erhalten

Anmelden und einen persönlichen Zugriffstoken erhalten

Stellt einen neuen persönlichen Zugriffstoken für dieses Gerät aus und widerruft den Token, den eine frühere Anmeldung für denselben Gerätenamen ausgestellt hat. Sende ihn bei jedem Aufruf als Bearer-Token und melde dich bei einem 401 erneut an.

Request Body

erforderlich

Content-Type: application/json

Name Typ Beschreibung
email string (email)
password string (password)
deviceName string Fester Name dieser Installation, der dem Mitglied in seiner Tokenliste angezeigt wird

Antworten

Code Beschreibung
200 Angemeldet LoginResult
400 Fehlerhafter Inhalt oder ungültiger Gerätename (bad_request, invalid_device_name) ErrorResponse
401 Falsche E-Mail oder falsches Passwort (invalid_credentials) ErrorResponse
403 Das Konto kann sich noch nicht oder nicht mehr anmelden (account_blocked, email_not_verified, pending_approval); das Mitglied klärt das auf der Website ErrorResponse
429 Zu viele Versuche (too_many_attempts, mit Retry-After) oder Anmeldeschutz aktiv (login_restricted); auf der Website anmelden ErrorResponse

Beispiel-Anfrage

curl -X POST '/api/v1/auth/login' \
  -H "Content-Type: application/json" \
  -d '{"email":"value","password":"value","deviceName":"value"}'
POST /api/v1/auth/logout Abmelden und den aufrufenden Token widerrufen

Abmelden und den aufrufenden Token widerrufen

Antworten

Code Beschreibung
204 Token widerrufen
401 Bearer-Token fehlt oder ist ungültig

Beispiel-Anfrage

curl -X POST '/api/v1/auth/logout' \
  -H "Authorization: Bearer $ACCESS_TOKEN"

community

GET /api/v1/community/blocks Von der aufrufenden Person blockierte Mitglieder auflisten

Von der aufrufenden Person blockierte Mitglieder auflisten

Antworten

Code Beschreibung
200 Blockierte Mitglieder MemberList
401 Bearer-Token fehlt oder ist ungültig

Beispiel-Anfrage

curl '/api/v1/community/blocks' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
GET /api/v1/community/members Mitglieder der Plattform auflisten

Mitglieder der Plattform auflisten

Mitglieder, die das aufrufende Mitglied sehen darf, ohne blockierte. Wer sich aus dem Verzeichnis abgemeldet hat, fehlt auch hier - genau wie auf der Website; das Profil bleibt über die ID erreichbar.

Parameter

Name In Typ Beschreibung
limit query integer
Standard: 20
offset query integer
Standard: 0

Antworten

Code Beschreibung
200 Mitglieder MemberList
401 Bearer-Token fehlt oder ist ungültig

Beispiel-Anfrage

curl '/api/v1/community/members?limit=1&offset=1' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
POST /api/v1/community/blocks/{id} Ein Mitglied blockieren

Ein Mitglied blockieren

Beim Blockieren werden bestehende Folgebeziehungen in beide Richtungen aufgelöst und die Unterhaltung aus beiden Postfächern ausgeblendet. Der Aufruf kann gefahrlos wiederholt werden.

Parameter

Name In Typ Beschreibung
id * path integer

Antworten

Code Beschreibung
204 Blockiert
401 Bearer-Token fehlt oder ist ungültig
404 Mitglied existiert nicht (not_found) ErrorResponse
422 Sich selbst blockieren (self_target) ErrorResponse

Beispiel-Anfrage

curl -X POST '/api/v1/community/blocks/1' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
DELETE /api/v1/community/blocks/{id} Blockierung eines Mitglieds aufheben

Blockierung eines Mitglieds aufheben

Der Aufruf kann gefahrlos wiederholt werden. Das Aufheben der Blockierung stellt eine zuvor entfernte Folgebeziehung nicht wieder her.

Parameter

Name In Typ Beschreibung
id * path integer

Antworten

Code Beschreibung
204 Nicht blockiert
401 Bearer-Token fehlt oder ist ungültig
404 Mitglied existiert nicht (not_found) ErrorResponse

Beispiel-Anfrage

curl -X DELETE '/api/v1/community/blocks/1' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
GET /api/v1/community/members/{id} Ein Mitgliedsprofil lesen

Ein Mitgliedsprofil lesen

Parameter

Name In Typ Beschreibung
id * path integer

Antworten

Code Beschreibung
200 Das Mitgliedsprofil MemberProfile
401 Bearer-Token fehlt oder ist ungültig
403 Das Mitglied hat die aufrufende Person blockiert (forbidden) ErrorResponse
404 Mitglied existiert nicht (not_found) ErrorResponse

Beispiel-Anfrage

curl '/api/v1/community/members/1' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
GET /api/v1/community/conversations Unterhaltungen des aufrufenden Mitglieds auflisten

Unterhaltungen des aufrufenden Mitglieds auflisten

Ein Eintrag je Person, neueste zuerst. In einer der beiden Richtungen blockierte Personen fehlen.

Parameter

Name In Typ Beschreibung
limit query integer
Standard: 20
offset query integer
Standard: 0

Antworten

Code Beschreibung
200 Unterhaltungen ConversationList
401 Bearer-Token fehlt oder ist ungültig
403 Token ohne den Scope community:read (insufficient_scope) ErrorResponse

Beispiel-Anfrage

curl '/api/v1/community/conversations?limit=1&offset=1' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
PATCH /api/v1/community/messages/{id} Eine Nachricht innerhalb des Bearbeitungsfensters ändern

Eine Nachricht innerhalb des Bearbeitungsfensters ändern

Eine Nachricht kann zehn Minuten nach dem Senden bearbeitet werden. Die Website antwortet hier mit 403, diese Schnittstelle mit 409, weil das Zeitfenster ein Zustandskonflikt und kein Berechtigungsfehler ist.

Parameter

Name In Typ Beschreibung
id * path integer

Request Body

erforderlich

Content-Type: application/json

Name Typ Beschreibung
content string

Antworten

Code Beschreibung
200 Die gespeicherte Nachricht ThreadMessage
401 Bearer-Token fehlt oder ist ungültig
404 Nachricht existiert nicht oder wurde von jemand anderem gesendet (not_found) ErrorResponse
409 Das Zehn-Minuten-Fenster ist abgelaufen (edit_window_expired) ErrorResponse
422 content_required oder content_too_long ErrorResponse

Beispiel-Anfrage

curl -X PATCH '/api/v1/community/messages/1' \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"content":"value"}'
POST /api/v1/community/members/{id}/follow Einem Mitglied folgen

Einem Mitglied folgen

Der Aufruf kann gefahrlos wiederholt werden: Er beschreibt den gewünschten Endzustand und schaltet nicht um.

Parameter

Name In Typ Beschreibung
id * path integer

Antworten

Code Beschreibung
204 Folgt
401 Bearer-Token fehlt oder ist ungültig
404 Mitglied existiert nicht (not_found) ErrorResponse
409 Eine Blockierung in einer der beiden Richtungen (blocked) ErrorResponse
422 Sich selbst folgen (self_target) ErrorResponse

Beispiel-Anfrage

curl -X POST '/api/v1/community/members/1/follow' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
DELETE /api/v1/community/members/{id}/follow Einem Mitglied nicht mehr folgen

Einem Mitglied nicht mehr folgen

Der Aufruf kann gefahrlos wiederholt werden.

Parameter

Name In Typ Beschreibung
id * path integer

Antworten

Code Beschreibung
204 Folgt nicht
401 Bearer-Token fehlt oder ist ungültig
404 Mitglied existiert nicht (not_found) ErrorResponse

Beispiel-Anfrage

curl -X DELETE '/api/v1/community/members/1/follow' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
GET /api/v1/community/groups/{slug}/members Mitglieder einer Gruppe auflisten

Mitglieder einer Gruppe auflisten

Dieselbe Liste, auf eine Gruppe eingegrenzt. Eine für die aufrufende Person nicht erreichbare Gruppe antwortet mit demselben 404 wie ein unbekannter Slug; für eine private oder verborgene Gruppe muss das Token zusätzlich me:read tragen, weil die Mitgliedschaft über diesen Scope aufgelöst wird.

Parameter

Name In Typ Beschreibung
slug * path string
limit query integer
Standard: 20
offset query integer
Standard: 0

Antworten

Code Beschreibung
200 Mitglieder dieser Gruppe MemberList
401 Bearer-Token fehlt oder ist ungültig
404 Gruppe nicht gefunden oder nicht erreichbar (not_found) ErrorResponse

Beispiel-Anfrage

curl '/api/v1/community/groups/slug/members?limit=1&offset=1' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
GET /api/v1/community/conversations/{userId} Eine Unterhaltung lesen

Eine Unterhaltung lesen

Älteste zuerst. Dieser Lesezugriff verändert nichts: Er markiert die Unterhaltung nicht als gelesen, anders als das Öffnen der Seite auf der Website. Dafür ist POST /api/v1/community/conversations/{userId}/read vorgesehen.

Parameter

Name In Typ Beschreibung
userId * path integer
limit query integer
Standard: 20
offset query integer
Standard: 0

Antworten

Code Beschreibung
200 Die Unterhaltung MessageThread
401 Bearer-Token fehlt oder ist ungültig
404 Mitglied existiert nicht (not_found) ErrorResponse

Beispiel-Anfrage

curl '/api/v1/community/conversations/1?limit=1&offset=1' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
POST /api/v1/community/conversations/{userId} Eine Direktnachricht senden

Eine Direktnachricht senden

Parameter

Name In Typ Beschreibung
userId * path integer

Request Body

erforderlich

Content-Type: application/json

Name Typ Beschreibung
content string

Antworten

Code Beschreibung
201 Die gespeicherte Nachricht ThreadMessage
401 Bearer-Token fehlt oder ist ungültig
404 Mitglied existiert nicht (not_found) ErrorResponse
409 Eine Blockierung in einer der beiden Richtungen (blocked) ErrorResponse
422 content_required, content_too_long oder self_target ErrorResponse

Beispiel-Anfrage

curl -X POST '/api/v1/community/conversations/1' \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"content":"value"}'
POST /api/v1/community/conversations/{userId}/read Eine Unterhaltung als gelesen markieren

Eine Unterhaltung als gelesen markieren

Parameter

Name In Typ Beschreibung
userId * path integer

Antworten

Code Beschreibung
204 Als gelesen markiert
401 Bearer-Token fehlt oder ist ungültig
404 Mitglied existiert nicht (not_found) ErrorResponse

Beispiel-Anfrage

curl -X POST '/api/v1/community/conversations/1/read' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
GET /api/v1/community/groups/{slug}/town-hall/topics Die Town-Hall-Themen einer Gruppe auflisten

Die Town-Hall-Themen einer Gruppe auflisten

Der ganze Forenbaum der Gruppe, Tiefe zuerst, so wie die Website ihn lädt. Nicht geblättert. Eine Gruppe ohne Town Hall oder eine, deren Town Hall für die aufrufende Person geschlossen ist, antwortet mit 404 - dieselbe Antwort wie bei einem unbekannten Slug.

Parameter

Name In Typ Beschreibung
slug * path string

Antworten

Code Beschreibung
200 Der Themenbaum TopicList
401 Bearer-Token fehlt oder ist ungültig
404 Gruppe nicht gefunden, nicht erreichbar oder Town Hall für die aufrufende Person geschlossen (not_found) ErrorResponse

Beispiel-Anfrage

curl '/api/v1/community/groups/slug/town-hall/topics' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
POST /api/v1/community/groups/{slug}/town-hall/topics Ein Thema oder Unterthema beginnen

Ein Thema oder Unterthema beginnen

Parameter

Name In Typ Beschreibung
slug * path string

Request Body

erforderlich

Content-Type: application/json

Name Typ Beschreibung
title string
parentId integer | null Ein Unterthema dieses Themas beginnen.

Antworten

Code Beschreibung
201 Thema erstellt Topic
401 Bearer-Token fehlt oder ist ungültig
404 Gruppe oder übergeordnetes Thema nicht gefunden oder Town Hall für die aufrufende Person geschlossen (not_found) ErrorResponse
422 empty_title, title_too_long oder too_deep ErrorResponse

Beispiel-Anfrage

curl -X POST '/api/v1/community/groups/slug/town-hall/topics' \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title":"value","parentId":"value"}'
GET /api/v1/community/groups/{slug}/town-hall/gallery Die Town-Hall-Galerie einer Gruppe auflisten

Die Town-Hall-Galerie einer Gruppe auflisten

Die zu den Veranstaltungen der Gruppe hochgeladenen Fotos, neueste zuerst, jeweils mit ihrer Veranstaltung. Von Mitgliedern gemeldete Fotos fehlen, wie auf der Veranstaltungsseite.

Parameter

Name In Typ Beschreibung
slug * path string
limit query integer
Standard: 20
offset query integer
Standard: 0
locale query string Sprache der Veranstaltungstitel

Antworten

Code Beschreibung
200 Eine Seite mit Fotos GalleryList
401 Bearer-Token fehlt oder ist ungültig
404 Gruppe nicht gefunden, nicht erreichbar oder Town Hall für die aufrufende Person geschlossen (not_found) ErrorResponse

Beispiel-Anfrage

curl '/api/v1/community/groups/slug/town-hall/gallery?limit=1&offset=1&locale=en' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
DELETE /api/v1/community/groups/{slug}/town-hall/topics/{id} Ein Thema löschen

Ein Thema löschen

Der Autor darf ein Thema löschen, solange es keine Unterthemen und keine Antworten hat; ein Admin löscht es mit seinem ganzen Teilbaum.

Parameter

Name In Typ Beschreibung
slug * path string
id * path integer

Antworten

Code Beschreibung
204 Thema gelöscht
401 Bearer-Token fehlt oder ist ungültig
403 Löschen nicht erlaubt (forbidden) ErrorResponse
404 Gruppe oder Thema nicht gefunden oder Town Hall für die aufrufende Person geschlossen (not_found) ErrorResponse

Beispiel-Anfrage

curl -X DELETE '/api/v1/community/groups/slug/town-hall/topics/1' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
PATCH /api/v1/community/groups/{slug}/town-hall/topics/{id} Ein Thema umbenennen (Autor oder Admin)

Ein Thema umbenennen (Autor oder Admin)

Parameter

Name In Typ Beschreibung
slug * path string
id * path integer

Request Body

erforderlich

Content-Type: application/json

Name Typ Beschreibung
title string

Antworten

Code Beschreibung
200 Thema umbenannt Topic
401 Bearer-Token fehlt oder ist ungültig
403 Weder Autor noch Admin (forbidden) ErrorResponse
404 Gruppe oder Thema nicht gefunden oder Town Hall für die aufrufende Person geschlossen (not_found) ErrorResponse
422 empty_title oder title_too_long ErrorResponse

Beispiel-Anfrage

curl -X PATCH '/api/v1/community/groups/slug/town-hall/topics/1' \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title":"value"}'
GET /api/v1/community/groups/{slug}/town-hall/topics/{id}/replies Die Antworten auf ein Thema auflisten

Die Antworten auf ein Thema auflisten

Neueste zuerst, rückwärts geblättert wie Veranstaltungskommentare: nextBefore der vorigen Seite übergeben.

Parameter

Name In Typ Beschreibung
slug * path string
id * path integer
before query integer Nur Antworten, die älter als diese Antwort-ID sind
limit query integer
Standard: 20

Antworten

Code Beschreibung
200 Eine Seite mit Antworten CommentList
401 Bearer-Token fehlt oder ist ungültig
404 Gruppe oder Thema nicht gefunden oder Town Hall für die aufrufende Person geschlossen (not_found) ErrorResponse

Beispiel-Anfrage

curl '/api/v1/community/groups/slug/town-hall/topics/1/replies?before=1&limit=1' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
POST /api/v1/community/groups/{slug}/town-hall/topics/{id}/replies Auf ein Thema antworten

Auf ein Thema antworten

Parameter

Name In Typ Beschreibung
slug * path string
id * path integer

Request Body

erforderlich

Content-Type: application/json

Name Typ Beschreibung
content string

Antworten

Code Beschreibung
201 Antwort erstellt CommentCreated
401 Bearer-Token fehlt oder ist ungültig
404 Gruppe oder Thema nicht gefunden oder Town Hall für die aufrufende Person geschlossen (not_found) ErrorResponse
422 content_required oder content_too_long ErrorResponse

Beispiel-Anfrage

curl -X POST '/api/v1/community/groups/slug/town-hall/topics/1/replies' \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"content":"value"}'
DELETE /api/v1/community/groups/{slug}/town-hall/topics/{id}/replies/{replyId} Eine Antwort löschen (eigene oder als Admin)

Eine Antwort löschen (eigene oder als Admin)

Parameter

Name In Typ Beschreibung
slug * path string
id * path integer
replyId * path integer

Antworten

Code Beschreibung
204 Antwort gelöscht
401 Bearer-Token fehlt oder ist ungültig
403 Nicht deine Antwort und kein Admin (forbidden) ErrorResponse
404 Gruppe, Thema oder Antwort nicht gefunden, eine Antwort auf ein anderes Thema oder Town Hall für die aufrufende Person geschlossen (not_found) ErrorResponse

Beispiel-Anfrage

curl -X DELETE '/api/v1/community/groups/slug/town-hall/topics/1/replies/1' \
  -H "Authorization: Bearer $ACCESS_TOKEN"

event-actions

Aktionen angemeldeter Benutzer an Events: Zusagen, Kommentare, Bild-Upload

PUT /api/v1/events/{id}/rsvp Zusage und Gäste für ein Event setzen

Zusage und Gäste für ein Event setzen

Idempotent: setzt Zusage und Gästezahl in einem Aufruf und antwortet mit dem sich ergebenden Stand.

Parameter

Name In Typ Beschreibung
id * path integer

Request Body

erforderlich

Content-Type: application/json

Name Typ Beschreibung
going boolean
guests integer Gäste, die das Mitglied mitbringt, 0 bis 5; wird ignoriert, wenn es nicht teilnimmt

Antworten

Code Beschreibung
200 Sich ergebender Zusagestand RsvpResult
401 Bearer-Token fehlt oder ist ungültig
403 Nicht erlaubt (not_a_member) ErrorResponse
404 Event nicht gefunden ErrorResponse
409 Event abgesagt oder bereits begonnen (event_canceled, event_started) ErrorResponse
400 Der Body ist kein Objekt, oder going ist kein Boolean (bad_request) ErrorResponse
422 Gästezahl außerhalb des gültigen Bereichs (validation_failed) ErrorResponse

Beispiel-Anfrage

curl -X PUT '/api/v1/events/1/rsvp' \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"going":"value","guests":"value"}'
POST /api/v1/events/{id}/rsvp Für ein Event zusagen

Für ein Event zusagen

Parameter

Name In Typ Beschreibung
id * path integer

Antworten

Code Beschreibung
200 Zusage hinzugefügt (oder bereits vorhanden) RsvpResult
401 Bearer-Token fehlt oder ist ungültig
403 Nicht erlaubt (Gruppenmitgliedschaft / gesperrt) ErrorResponse
404 Event nicht gefunden ErrorResponse
409 Event abgesagt oder bereits begonnen ErrorResponse

Beispiel-Anfrage

curl -X POST '/api/v1/events/1/rsvp' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
DELETE /api/v1/events/{id}/rsvp Zusage für ein Event zurückziehen

Zusage für ein Event zurückziehen

Das Zurückziehen wird nie abgelehnt: eine abgesagte Veranstaltung, eine bereits begonnene und eine verlorene Gruppenmitgliedschaft lassen das Mitglied alle von der Teilnehmerliste.

Parameter

Name In Typ Beschreibung
id * path integer

Antworten

Code Beschreibung
200 Zusage entfernt (oder nicht vorhanden) RsvpResult
401 Bearer-Token fehlt oder ist ungültig
404 Event nicht gefunden ErrorResponse

Beispiel-Anfrage

curl -X DELETE '/api/v1/events/1/rsvp' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
GET /api/v1/events/{id}/images Die Fotos einer Veranstaltung auflisten

Die Fotos einer Veranstaltung auflisten

Die Fotos der Veranstaltung in allen erzeugten Größen. Von Mitgliedern gemeldete Fotos fehlen, wie auf der Veranstaltungsseite.

Parameter

Name In Typ Beschreibung
id * path integer

Antworten

Code Beschreibung
200 Die Fotos der Veranstaltung ImageList
401 Bearer-Token fehlt oder ist ungültig
403 Token ohne den Bereich event-actions:read (insufficient_scope) ErrorResponse
404 Veranstaltung nicht gefunden oder für die aufrufende Person nicht sichtbar (not_found) ErrorResponse

Beispiel-Anfrage

curl '/api/v1/events/1/images' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
POST /api/v1/events/{id}/images Bild zu einem Event hochladen

Bild zu einem Event hochladen

Parameter

Name In Typ Beschreibung
id * path integer

Request Body

erforderlich

Content-Type: multipart/form-data

Name Typ Beschreibung
file string (binary)

Antworten

Code Beschreibung
201 Bild hochgeladen ImageUploaded
400 file_required, file_rejected oder upload_failed ErrorResponse
401 Bearer-Token fehlt oder ist ungültig
403 Nicht erlaubt ErrorResponse
404 Event nicht gefunden ErrorResponse

Beispiel-Anfrage

curl -X POST '/api/v1/events/1/images' \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -F "file=@/path/to/file"
GET /api/v1/events/{id}/comments Die Kommentare zu einer Veranstaltung auflisten

Die Kommentare zu einer Veranstaltung auflisten

Neueste zuerst, wie auf der Veranstaltungsseite. Für die nächste Seite den Wert nextBefore der vorherigen Seite übergeben.

Parameter

Name In Typ Beschreibung
id * path integer
before query integer Nur Kommentare, die älter sind als diese Kommentar-ID
limit query integer
Standard: 25

Antworten

Code Beschreibung
200 Eine Seite mit Kommentaren CommentList
401 Bearer-Token fehlt oder ist ungültig
403 Token ohne den Bereich event-actions:read (insufficient_scope) ErrorResponse
404 Veranstaltung nicht gefunden oder für die aufrufende Person nicht sichtbar (not_found) ErrorResponse

Beispiel-Anfrage

curl '/api/v1/events/1/comments?before=1&limit=1' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
POST /api/v1/events/{id}/comments Kommentar zu einem Event schreiben

Kommentar zu einem Event schreiben

Parameter

Name In Typ Beschreibung
id * path integer

Request Body

erforderlich

Content-Type: application/json

Name Typ Beschreibung
content string

Antworten

Code Beschreibung
201 Kommentar erstellt CommentCreated
400 content_required oder content_too_long ErrorResponse
401 Bearer-Token fehlt oder ist ungültig
403 Nicht erlaubt ErrorResponse
404 Event nicht gefunden ErrorResponse

Beispiel-Anfrage

curl -X POST '/api/v1/events/1/comments' \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"content":"value"}'
GET /api/v1/events/{id}/attendees Auflisten, wer zu einer Veranstaltung kommt

Auflisten, wer zu einer Veranstaltung kommt

Wer kommt, so wie die Veranstaltungsseite es angemeldeten Mitgliedern zeigt: die Personen mit Zusage und ihren Gästen, dazu die von der Organisation gepflegte externe Zahl.

Parameter

Name In Typ Beschreibung
id * path integer

Antworten

Code Beschreibung
200 Die Personen, die kommen AttendeeList
401 Bearer-Token fehlt oder ist ungültig
403 Token ohne den Bereich event-actions:read (insufficient_scope) ErrorResponse
404 Veranstaltung nicht gefunden oder für die aufrufende Person nicht sichtbar (not_found) ErrorResponse

Beispiel-Anfrage

curl '/api/v1/events/1/attendees' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
GET /api/v1/events/{id}/occurrences Die weiteren Termine eines wiederkehrenden Treffens auflisten

Die weiteren Termine eines wiederkehrenden Treffens auflisten

Die kommenden sichtbaren Events derselben Serie, jeweils mit dem eigenen Zusagestand. Ein Event ohne Serie antwortet mit sich selbst.

Parameter

Name In Typ Beschreibung
id * path integer

Antworten

Code Beschreibung
200 Kommende Termine der Serie EventList
401 Bearer-Token fehlt oder ist ungültig
404 Event nicht gefunden ErrorResponse

Beispiel-Anfrage

curl '/api/v1/events/1/occurrences' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
DELETE /api/v1/events/{id}/images/{imageId} Event-Bild löschen (eigener Upload oder als Admin)

Event-Bild löschen (eigener Upload oder als Admin)

Parameter

Name In Typ Beschreibung
id * path integer
imageId * path integer

Antworten

Code Beschreibung
204 Bild gelöscht
401 Bearer-Token fehlt oder ist ungültig
403 Nicht dein Bild und keine Admin-Rechte ErrorResponse
404 Bild oder Event nicht gefunden ErrorResponse

Beispiel-Anfrage

curl -X DELETE '/api/v1/events/1/images/1' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
DELETE /api/v1/events/{id}/comments/{commentId} Event-Kommentar löschen (eigener oder als Admin)

Event-Kommentar löschen (eigener oder als Admin)

Parameter

Name In Typ Beschreibung
id * path integer
commentId * path integer

Antworten

Code Beschreibung
204 Kommentar gelöscht
401 Bearer-Token fehlt oder ist ungültig
403 Nicht dein Kommentar und keine Admin-Rechte ErrorResponse
404 Kommentar oder Event nicht gefunden ErrorResponse

Beispiel-Anfrage

curl -X DELETE '/api/v1/events/1/comments/1' \
  -H "Authorization: Bearer $ACCESS_TOKEN"

events

Öffentliche Event-Listen und -Details

GET /api/v1/events Öffentliche kommende Events auflisten

Öffentliche kommende Events auflisten

Parameter

Name In Typ Beschreibung
locale query string
from query string (date-time) ISO-8601-Untergrenze (Standard: jetzt)
to query string (date-time) ISO-8601-Obergrenze
limit query integer
Standard: 20
offset query integer
Standard: 0
group query string Gruppen-Slug; ein unbekannter Slug liefert eine leere Liste

Antworten

Code Beschreibung
200 Seitenweise Event-Liste EventList

Beispiel-Anfrage

curl '/api/v1/events?locale=en&from=value&to=value&limit=1&offset=1&group=weiqi-club'
GET /api/v1/events/{id} Ein einzelnes Event über die ID abrufen

Ein einzelnes Event über die ID abrufen

Parameter

Name In Typ Beschreibung
id * path integer
locale query string

Antworten

Code Beschreibung
200 Event-Details EventDetail
404 Event nicht gefunden oder im aktuellen Kontext nicht sichtbar ErrorResponse

Beispiel-Anfrage

curl '/api/v1/events/1?locale=value'

group-admin

Gruppenbezogene Admin-Aktionen. Erfordert die Rolle Eigentümer oder Organisator in der genannten Gruppe oder ROLE_ADMIN auf der Plattform.

GET /api/v1/groups/{groupSlug}/admin/members Mitglieder einer Gruppe auflisten

Mitglieder einer Gruppe auflisten

Parameter

Name In Typ Beschreibung
groupSlug * path string

Antworten

Code Beschreibung
200 Mitgliederliste GroupMemberList
401 Bearer-Token fehlt oder ist ungültig
403 Aufrufer ist weder Eigentümer noch Organisator dieser Gruppe
404 Gruppe nicht gefunden ErrorResponse

Beispiel-Anfrage

curl '/api/v1/groups/groupSlug/admin/members' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
GET /api/v1/groups/{groupSlug}/admin/settings Einstellungen einer Gruppe lesen

Einstellungen einer Gruppe lesen

Parameter

Name In Typ Beschreibung
groupSlug * path string

Antworten

Code Beschreibung
200 Gruppeneinstellungen GroupSettings
401 Bearer-Token fehlt oder ist ungültig
403 Aufrufer ist weder Eigentümer noch Organisator dieser Gruppe
404 Gruppe nicht gefunden ErrorResponse

Beispiel-Anfrage

curl '/api/v1/groups/weiqi-club/admin/settings' \
  -H "Authorization: Bearer $ACCESS_TOKEN"

groups

Mandantengruppen (Multisite)

GET /api/v1/groups Aktive Gruppen auflisten

Aktive Gruppen auflisten

Antworten

Code Beschreibung
200 Liste von Gruppenübersichten GroupList

Beispiel-Anfrage

curl '/api/v1/groups'
GET /api/v1/groups/{groupSlug} Eine Gruppe über den Slug abrufen

Eine Gruppe über den Slug abrufen

Parameter

Name In Typ Beschreibung
groupSlug * path string

Antworten

Code Beschreibung
200 Gruppendetails GroupDetail
404 Gruppe nicht gefunden ErrorResponse

Beispiel-Anfrage

curl '/api/v1/groups/groupSlug'
GET /api/v1/groups/{groupSlug}/cms CMS-Seiten einer Gruppe auflisten

CMS-Seiten einer Gruppe auflisten

Parameter

Name In Typ Beschreibung
groupSlug * path string
language query string Zweibuchstabiger Sprachcode. Ohne Angabe wird die erste verfügbare Sprache des Eintrags verwendet. Fehlt der Seite die angegebene Sprache, wird auf "en" (oder die erste verfügbare) zurückgegriffen.

Antworten

Code Beschreibung
200 Liste der CMS-Seiten CmsPageList
404 Gruppe nicht gefunden ErrorResponse

Beispiel-Anfrage

curl '/api/v1/groups/weiqi-club/cms?language=en'
GET /api/v1/groups/{groupSlug}/cms/{cmsSlug} Metadaten einer CMS-Seite über Gruppe und Slug abrufen

Metadaten einer CMS-Seite über Gruppe und Slug abrufen

Parameter

Name In Typ Beschreibung
groupSlug * path string
cmsSlug * path string
language query string

Antworten

Code Beschreibung
200 Metadaten der CMS-Seite CmsPage
404 Gruppe nicht gefunden oder Seite nicht gefunden / in dieser Gruppe nicht sichtbar ErrorResponse

Beispiel-Anfrage

curl '/api/v1/groups/platform/cms/about?language=value'

me

Angemeldeter Benutzer (Lesezugriffe im Token-Geltungsbereich)

GET /api/v1/me Profil des angemeldeten Benutzers abrufen

Profil des angemeldeten Benutzers abrufen

Antworten

Code Beschreibung
200 Benutzerprofil MeProfile
401 Bearer-Token fehlt oder ist ungültig

Beispiel-Anfrage

curl '/api/v1/me' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
PATCH /api/v1/me Das Profil des angemeldeten Mitglieds bearbeiten

Das Profil des angemeldeten Mitglieds bearbeiten

Es ändern sich nur die Felder, die im Body stehen. Für den Namen gilt die Regel der Website: ein bereits gespeicherter Name über der Grenze bleibt gültig, eine Änderung muss hineinpassen.

Request Body

erforderlich

Content-Type: application/json

Name Typ Beschreibung
name string
bio string | null
locale string Eine der auf dieser Plattform aktivierten Sprachen
public boolean

Antworten

Code Beschreibung
200 Das gespeicherte Profil MeProfile
401 Bearer-Token fehlt oder ist ungültig
403 Token ohne den Bereich me:write (insufficient_scope) ErrorResponse
422 Ein Feld wurde abgelehnt (validation_failed); errors benennt sie: name_required, name_too_long, locale_not_enabled, bio_invalid, public_invalid ValidationErrorResponse

Beispiel-Anfrage

curl -X PATCH '/api/v1/me' \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"value","bio":"value","locale":"value","public":"value"}'
GET /api/v1/me/rsvps Kommende Zusagen des angemeldeten Benutzers auflisten

Kommende Zusagen des angemeldeten Benutzers auflisten

Parameter

Name In Typ Beschreibung
locale query string Sprachcode; hat Vorrang vor Accept-Language

Antworten

Code Beschreibung
200 Liste der kommenden Events, für die der Benutzer zugesagt hat MeRsvpList
401 Bearer-Token fehlt oder ist ungültig

Beispiel-Anfrage

curl '/api/v1/me/rsvps?locale=en' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
POST /api/v1/me/avatar Das Profilbild des angemeldeten Mitglieds ersetzen

Das Profilbild des angemeldeten Mitglieds ersetzen

Ersetzt das Profilbild des Mitglieds. Das bisherige Bild bleibt wie auf der Website in der eigenen Galerie.

Request Body

erforderlich

Content-Type: multipart/form-data

Name Typ Beschreibung
file string (binary)

Antworten

Code Beschreibung
200 Das Profil mit dem neuen Profilbild MeProfile
400 file_required, file_rejected oder upload_failed ErrorResponse
401 Bearer-Token fehlt oder ist ungültig
403 Token ohne den Bereich me:write (insufficient_scope) ErrorResponse

Beispiel-Anfrage

curl -X POST '/api/v1/me/avatar' \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -F "file=@/path/to/file"
GET /api/v1/me/groups Die Gruppen des angemeldeten Mitglieds auflisten

Die Gruppen des angemeldeten Mitglieds auflisten

Jede Gruppe, in der das Mitglied ist oder um Aufnahme gebeten hat, auch die, die es gesperrt haben, jeweils mit Rolle und Status der Mitgliedschaft.

Antworten

Code Beschreibung
200 Die Mitgliedschaften des angemeldeten Mitglieds MembershipList
401 Bearer-Token fehlt oder ist ungültig

Beispiel-Anfrage

curl '/api/v1/me/groups' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
GET /api/v1/me/events Die kommenden Treffen des angemeldeten Mitglieds auflisten

Die kommenden Treffen des angemeldeten Mitglieds auflisten

Die kommenden Events der Gruppen des Mitglieds plus die sichtbaren kommenden Events, für die es anderswo zugesagt hat; abgesagte eingeschlossen und gekennzeichnet.

Parameter

Name In Typ Beschreibung
from query string (date-time) ISO-8601-Untergrenze (Standard: jetzt)
limit query integer
Standard: 20
offset query integer
Standard: 0
locale query string Sprachcode; hat Vorrang vor Accept-Language

Antworten

Code Beschreibung
200 Seitenweise Event-Liste EventList
401 Bearer-Token fehlt oder ist ungültig

Beispiel-Anfrage

curl '/api/v1/me/events?from=value&limit=1&offset=1&locale=en' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
POST /api/v1/me/signal-token Das Benachrichtigungssignal-Token für dieses Gerät ausstellen

Das Benachrichtigungssignal-Token für dieses Gerät ausstellen

Stellt für das aufrufende App-Gerät ein zweites Token aus, das nur GET /api/v1/signal lesen darf und 90 Tage gültig ist. Eine erneute Anfrage ersetzt es, und der Widerruf des App-Tokens des Geräts widerruft es ebenfalls.

Antworten

Code Beschreibung
201 Das Signal-Token SignalTokenResult
400 Das aufrufende Token wurde nicht über die API-Anmeldung ausgestellt (not_an_app_token) ErrorResponse
401 Bearer-Token fehlt oder ist ungültig
403 Token ohne den Bereich me:write (insufficient_scope) ErrorResponse

Beispiel-Anfrage

curl -X POST '/api/v1/me/signal-token' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
GET /api/v1/me/notifications Benachrichtigungen des angemeldeten Mitglieds auflisten

Benachrichtigungen des angemeldeten Mitglieds auflisten

Die Benachrichtigungsglocke der Website, als Daten. Jeder Eintrag wird live aus denselben Providern berechnet, die auch die Website nutzt; nichts wird gespeichert, es gibt also keinen Gelesen-Status, keine Historie und keinen Cursor. Die Beschriftungen kommen in der angefragten Sprache zurück.

Antworten

Code Beschreibung
200 Die Glocke NotificationList
401 Bearer-Token fehlt oder ist ungültig
403 Token ohne den Scope me:read (insufficient_scope) ErrorResponse

Beispiel-Anfrage

curl '/api/v1/me/notifications' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
GET /api/v1/me/push-subscriptions Registrierte Push-Geräte auflisten

Registrierte Push-Geräte auflisten

Enthält außerdem den öffentlichen VAPID-Schlüssel, den ein Client zum Abonnieren braucht, und ob Push auf dieser Plattform überhaupt konfiguriert ist.

Antworten

Code Beschreibung
200 Die registrierten Geräte PushSubscriptionList
401 Bearer-Token fehlt oder ist ungültig
403 Token ohne den Scope me:read (insufficient_scope) ErrorResponse

Beispiel-Anfrage

curl '/api/v1/me/push-subscriptions' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
POST /api/v1/me/push-subscriptions Ein Push-Gerät registrieren

Ein Push-Gerät registrieren

Registriert einen Web-Push-Endpunkt für das aufrufende Token, sodass ein Widerruf des Geräts unter /profile/access-tokens auch seine Pings beendet. Ein erneutes Senden eines bekannten Endpunkts verschiebt ihn auf das aufrufende Gerät und antwortet mit 200.

Request Body

erforderlich

Content-Type: application/json

Name Typ Beschreibung
endpoint string
p256dh string
auth string
transport string

Antworten

Code Beschreibung
200 Ein bekannter Endpunkt wurde aktualisiert PushSubscriptionEntry
201 Der Endpunkt wurde registriert PushSubscriptionEntry
401 Bearer-Token fehlt oder ist ungültig
403 Token ohne den Bereich me:write (insufficient_scope) ErrorResponse
422 validation_failed, endpoint_rejected oder too_many_subscriptions ValidationErrorResponse
503 Auf dieser Plattform ist kein VAPID-Schlüssel konfiguriert (push_unavailable) ErrorResponse

Beispiel-Anfrage

curl -X POST '/api/v1/me/push-subscriptions' \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"endpoint":"value","p256dh":"value","auth":"value","transport":"value"}'
GET /api/v1/me/notification-settings Benachrichtigungseinstellungen des angemeldeten Mitglieds lesen

Benachrichtigungseinstellungen des angemeldeten Mitglieds lesen

Derselbe Hauptschalter und dieselben sechs Schalter, die das Mitglied unter /profile/config bearbeitet.

Antworten

Code Beschreibung
200 Die hinterlegten Einstellungen MeNotificationSettings
401 Bearer-Token fehlt oder ist ungültig
403 Token ohne den Scope me:read (insufficient_scope) ErrorResponse

Beispiel-Anfrage

curl '/api/v1/me/notification-settings' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
PATCH /api/v1/me/notification-settings Benachrichtigungseinstellungen des angemeldeten Mitglieds bearbeiten

Benachrichtigungseinstellungen des angemeldeten Mitglieds bearbeiten

Nur die im Body enthaltenen Schlüssel ändern sich. Der Schreibvorgang läuft über denselben Dienst wie auf der Website, eine Änderung hier erscheint also unter /profile/config.

Request Body

erforderlich

Content-Type: application/json

Antworten

Code Beschreibung
200 Die gespeicherten Einstellungen MeNotificationSettings
401 Bearer-Token fehlt oder ist ungültig
403 Token ohne den Bereich me:write (insufficient_scope) ErrorResponse
422 Ein Feld wurde abgelehnt (validation_failed); errors benennt sie: name_required, name_too_long, locale_not_enabled, bio_invalid, public_invalid ValidationErrorResponse

Beispiel-Anfrage

curl -X PATCH '/api/v1/me/notification-settings' \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
DELETE /api/v1/me/push-subscriptions/{id} Ein Push-Gerät entfernen

Ein Push-Gerät entfernen

Entfernt ein registriertes Gerät. Der Datensatz eines anderen Mitglieds antwortet mit 404 statt 403, damit der Endpunkt nicht bestätigt, dass eine ID existiert.

Parameter

Name In Typ Beschreibung
id * path integer Die Abonnement-ID aus dem Listen-Endpunkt

Antworten

Code Beschreibung
204 Entfernt
401 Bearer-Token fehlt oder ist ungültig
403 Token ohne den Bereich me:write (insufficient_scope) ErrorResponse
404 Kein solches Gerät für dieses Mitglied
503 Auf dieser Plattform ist kein VAPID-Schlüssel konfiguriert (push_unavailable) ErrorResponse

Beispiel-Anfrage

curl -X DELETE '/api/v1/me/push-subscriptions/1' \
  -H "Authorization: Bearer $ACCESS_TOKEN"

memberships

Die Gruppenmitgliedschaften des aufrufenden Mitglieds: Einladungen, Beitreten und Verlassen

GET /api/v1/memberships/invitations Die offenen Gruppeneinladungen auflisten

Die offenen Gruppeneinladungen auflisten

Einladungen an das aufrufende Mitglied, ohne die, die eine Sperre in einer der beiden Richtungen verbirgt.

Antworten

Code Beschreibung
200 Die offenen Einladungen InvitationList
401 Bearer-Token fehlt oder ist ungültig
403 Token ohne den Bereich memberships:read (insufficient_scope) ErrorResponse

Beispiel-Anfrage

curl '/api/v1/memberships/invitations' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
POST /api/v1/memberships/groups/{slug} Einer gelisteten Gruppe beitreten oder darum bitten

Einer gelisteten Gruppe beitreten oder darum bitten

Hier lässt sich nur eine Gruppe betreten, die im Gruppenverzeichnis steht. Einer versteckten Gruppe tritt man auf ihrer eigenen Domain bei, einer privaten nur per Einladung, daher antworten beide mit group_not_joinable. Verlangt die Gruppe eine Freigabe, kommt die Mitgliedschaft als pending zurück.

Parameter

Name In Typ Beschreibung
slug * path string

Request Body

Content-Type: application/json

Name Typ Beschreibung
platformMailConsent boolean Beantwortet den Wechsel zur Plattform: ob die Plattform Ankündigungen und Veranstaltungsmails senden darf

Antworten

Code Beschreibung
200 Die entstandene Mitgliedschaft, bestätigt oder wartend Membership
401 Bearer-Token fehlt oder ist ungültig
404 Keine solche Gruppe (not_found) ErrorResponse
409 group_not_joinable, blocked_in_group oder platform_crossing_required ErrorResponse

Beispiel-Anfrage

curl -X POST '/api/v1/memberships/groups/slug' \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"platformMailConsent":"value"}'
DELETE /api/v1/memberships/groups/{slug} Eine Gruppe verlassen

Eine Gruppe verlassen

Es gelten die Regeln der Website: die letzte Person mit Eigentümerrolle kann nicht gehen, ein gesperrtes Mitglied auch nicht, und die Plattformgruppe lässt sich erst verlassen, wenn sie für keine weitere Mitgliedschaft mehr gebraucht wird.

Parameter

Name In Typ Beschreibung
slug * path string

Antworten

Code Beschreibung
204 Mitgliedschaft beendet
401 Bearer-Token fehlt oder ist ungültig
404 Keine solche Gruppe oder keine Mitgliedschaft darin (not_found) ErrorResponse
409 last_owner, blocked_in_group oder may_not_leave_platform ErrorResponse

Beispiel-Anfrage

curl -X DELETE '/api/v1/memberships/groups/slug' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
POST /api/v1/memberships/invitations/{id}/accept Eine Gruppeneinladung annehmen

Eine Gruppeneinladung annehmen

Beim Annehmen entsteht die Mitgliedschaft in der eingeladenen Rolle. Solange das Mitglied der Plattformgruppe noch beitreten muss, antwortet dies mit 409 platform_crossing_required; mit platformMailConsent erneut aufrufen, um diese Frage zuerst zu beantworten.

Parameter

Name In Typ Beschreibung
id * path integer

Request Body

Content-Type: application/json

Name Typ Beschreibung
platformMailConsent boolean Beantwortet den Wechsel zur Plattform: ob die Plattform Ankündigungen und Veranstaltungsmails senden darf

Antworten

Code Beschreibung
200 Die entstandene Mitgliedschaft Membership
401 Bearer-Token fehlt oder ist ungültig
404 Keine solche Einladung für dieses Mitglied (invitation_not_found) ErrorResponse
409 blocked_in_group, membership_rejected oder platform_crossing_required ErrorResponse

Beispiel-Anfrage

curl -X POST '/api/v1/memberships/invitations/1/accept' \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"platformMailConsent":"value"}'
POST /api/v1/memberships/invitations/{id}/decline Eine Gruppeneinladung ablehnen

Eine Gruppeneinladung ablehnen

Parameter

Name In Typ Beschreibung
id * path integer

Antworten

Code Beschreibung
204 Einladung abgelehnt
401 Bearer-Token fehlt oder ist ungültig
404 Keine solche Einladung für dieses Mitglied (invitation_not_found) ErrorResponse

Beispiel-Anfrage

curl -X POST '/api/v1/memberships/invitations/1/decline' \
  -H "Authorization: Bearer $ACCESS_TOKEN"

signal

Ob sich für das Mitglied etwas geändert hat, ohne zu sagen was

GET /api/v1/signal Ob sich für das Mitglied etwas geändert hat

Ob sich für das Mitglied etwas geändert hat

Ein undurchsichtiger Wert, der sich ändert, wenn sich die Glocke ändert, wenn eine Veranstaltung, der das Mitglied zugesagt hat, abgesagt, zeitlich verschoben oder an einen anderen Ort verlegt wird, und wenn ihre Erinnerung fällig wird. Er verrät nichts weiter, daher kann ein Token, das nur diesen Bereich lesen darf, dort liegen, wo die App es nicht schützen kann.

Antworten

Code Beschreibung
200 Der aktuelle Wert SignalState
401 Bearer-Token fehlt oder ist ungültig
403 Token ohne den Scope signal:read (insufficient_scope) ErrorResponse

Beispiel-Anfrage

curl '/api/v1/signal' \
  -H "Authorization: Bearer $ACCESS_TOKEN"

status

Status

GET /api/status Endpunkt für die Statusprüfung

Endpunkt für die Statusprüfung

Antworten

Code Beschreibung
200 Dienst ist funktionsfähig HealthStatus

Beispiel-Anfrage

curl '/api/status'