v1.0.0 OpenAPI 3.1.0
MeetAgain API
Programmatischer Zugriff auf öffentliche Events, mitgliederbezogene Aktionen (Zusagen, Kommentare, Bild-Upload) und Admin-Abfragen. Für nicht-öffentliche Endpunkte ist ein Personal Access Token (PAT) erforderlich.
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)
admin
Plattform-Admin-Aktionen über die API. Nur für Benutzer mit ROLE_ADMIN.
GET /api/v1/admin/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/admin/logs/cron?limit=1' \
-H "Authorization: Bearer $ACCESS_TOKEN"
GET /api/v1/admin/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/admin/seo/status?property=1' \
-H "Authorization: Bearer $ACCESS_TOKEN"
GET /api/v1/admin/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/admin/seo/issues?property=1&filter=value' \
-H "Authorization: Bearer $ACCESS_TOKEN"
GET /api/v1/admin/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/admin/seo/actions?limit=1' \
-H "Authorization: Bearer $ACCESS_TOKEN"
POST /api/v1/admin/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/admin/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"}'
GET /api/v1/admin/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/admin/logs/sendlog?limit=1' \
-H "Authorization: Bearer $ACCESS_TOKEN"
GET /api/v1/admin/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/admin/logs/cron/1' \
-H "Authorization: Bearer $ACCESS_TOKEN"
PUT /api/v1/admin/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/admin/images/1/alt' \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"alt":"value"}'
GET /api/v1/admin/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/admin/logs/sendlog/1' \
-H "Authorization: Bearer $ACCESS_TOKEN"
GET /api/v1/admin/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/admin/images/missing-alt?after_id=1&limit=1' \
-H "Authorization: Bearer $ACCESS_TOKEN"
GET /api/v1/admin/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/admin/security/incidents?limit=1&since=value' \
-H "Authorization: Bearer $ACCESS_TOKEN"
GET /api/v1/admin/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/admin/images/1/content' \
-H "Authorization: Bearer $ACCESS_TOKEN"
GET /api/v1/admin/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/admin/security/incidents/1' \
-H "Authorization: Bearer $ACCESS_TOKEN"
event-actions
Aktionen angemeldeter Benutzer an Events: Zusagen, Kommentare, Bild-Upload
POST /api/v1/events/{id}/rsvp Für ein Event zusagen
Für ein Event zusagen
Antworten
| Code | Beschreibung | |
|---|---|---|
200 |
Zusage hinzugefügt (oder bereits vorhanden) | RsvpResult |
401 |
Bearer-Token fehlt oder ist ungültig | |
403 |
Nicht erlaubt (Gruppenmitgliedschaft / gesperrt) | |
404 |
Event nicht gefunden | ErrorResponse |
409 |
Event abgesagt oder bereits begonnen | ErrorResponse |
Beispiel-Anfrage
curl -X POST '/api/v1/events/{id}/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
Antworten
| Code | Beschreibung | |
|---|---|---|
200 |
Zusage entfernt (oder nicht vorhanden) | RsvpResult |
401 |
Bearer-Token fehlt oder ist ungültig | |
403 |
Nicht erlaubt | |
404 |
Event nicht gefunden | ErrorResponse |
409 |
Event abgesagt oder bereits begonnen | ErrorResponse |
Beispiel-Anfrage
curl -X DELETE '/api/v1/events/{id}/rsvp' \
-H "Authorization: Bearer $ACCESS_TOKEN"
POST /api/v1/events/{id}/images Bild zu einem Event hochladen
Bild zu einem Event hochladen
Request Body
erforderlich
Content-Type: multipart/form-data
| Name | Typ | Beschreibung |
|---|---|---|
file |
string
(binary)
|
Antworten
| Code | Beschreibung | |
|---|---|---|
201 |
Bild hochgeladen | ImageUploaded |
400 |
Keine Datei oder nicht unterstütztes Format | ErrorResponse |
401 |
Bearer-Token fehlt oder ist ungültig | |
403 |
Nicht erlaubt | |
404 |
Event nicht gefunden |
Beispiel-Anfrage
curl -X POST '/api/v1/events/{id}/images' \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-F "file=@/path/to/file"
POST /api/v1/events/{id}/comments Kommentar zu einem Event schreiben
Kommentar zu einem Event schreiben
Request Body
erforderlich
Content-Type: application/json
| Name | Typ | Beschreibung |
|---|---|---|
content |
string
|
Antworten
| Code | Beschreibung | |
|---|---|---|
201 |
Kommentar erstellt | CommentCreated |
400 |
Leerer oder zu langer Inhalt | ErrorResponse |
401 |
Bearer-Token fehlt oder ist ungültig | |
403 |
Nicht erlaubt | |
404 |
Event nicht gefunden |
Beispiel-Anfrage
curl -X POST '/api/v1/events/{id}/comments' \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"content":"value"}'
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)
Antworten
| Code | Beschreibung | |
|---|---|---|
204 |
Bild gelöscht | |
401 |
Bearer-Token fehlt oder ist ungültig | |
403 |
Nicht dein Bild und keine Admin-Rechte | |
404 |
Bild oder Event nicht gefunden |
Beispiel-Anfrage
curl -X DELETE '/api/v1/events/{id}/images/{imageId}' \
-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)
Antworten
| Code | Beschreibung | |
|---|---|---|
204 |
Kommentar gelöscht | |
401 |
Bearer-Token fehlt oder ist ungültig | |
403 |
Nicht dein Kommentar und keine Admin-Rechte | |
404 |
Kommentar oder Event nicht gefunden |
Beispiel-Anfrage
curl -X DELETE '/api/v1/events/{id}/comments/{commentId}' \
-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
|
Antworten
| Code | Beschreibung | |
|---|---|---|
200 |
Seitenweise Event-Liste | EventList |
Beispiel-Anfrage
curl '/api/v1/events?locale=en&from=value&to=value&limit=1&offset=1'
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"
GET /api/v1/me/rsvps Kommende Zusagen des angemeldeten Benutzers auflisten
Kommende Zusagen des angemeldeten Benutzers auflisten
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' \
-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'