Mit der DigitalMembers API baust du eigene Integrationen, zum Beispiel Mitgliederdaten in andere Systeme exportieren, die aktuelle Mitgliederzahl auf der Vereinswebseite anzeigen, Abläufe mit n8n automatisieren oder ein eigenes WordPress-Plugin bauen. Die API ist eine offene REST-API nach OpenAPI-3-Standard mit OAuth2-Authentifizierung (Client Credentials).
API-Schlüssel erstellen
- Gehe zu Organisation → Einstellungen → API-Schlüssel
- Klicke auf API-Schlüssel erstellen
- Vergib einen Namen und wähle pro Schlüssel die Berechtigungen, auf die er zugreifen darf
- Nach dem Erstellen wird dir einmalig der geheime Schlüssel (Client Secret) angezeigt, speichere ihn sofort sicher ab
Der geheime Schlüssel wird nur einmal angezeigt und kann danach nicht mehr abgerufen werden. Verlierst du ihn, erstellst du einen neuen Schlüssel.
Alle erstellten Schlüssel siehst du in der Übersicht, mit Erstellungsdatum und der Möglichkeit, einen Schlüssel jederzeit zu entfernen:
Token holen (OAuth2 Client Credentials)
Bevor du Daten abrufst, holst du dir mit client_id und Schlüssel ein zeitlich begrenztes Token. Mit curl:
TOKEN=$(curl -s -X POST \ https://auth.digitalmembers.ch/realms/members/protocol/openid-connect/token \ -d grant_type=client_credentials \ -d client_id=$CLIENT_ID \ -d client_secret=$CLIENT_SECRET | jq -r .access_token)
Mit Python:
import requests
token = requests.post(
"https://auth.digitalmembers.ch/realms/members/protocol/openid-connect/token",
data={
"grant_type": "client_credentials",
"client_id": CLIENT_ID,
"client_secret": CLIENT_SECRET,
},
).json()["access_token"]
Daten abrufen
Hänge das Token als Bearer-Header an jede Anfrage. Beispiel: die Mitgliederliste über den Endpunkt /v2/member/ am Host api.digitalmembers.ch. Mit curl:
curl -s https://api.digitalmembers.ch/v2/member/ \ -H "Authorization: Bearer $TOKEN"
Mit Python:
members = requests.get(
"https://api.digitalmembers.ch/v2/member/",
headers={"Authorization": f"Bearer {token}"},
).json()
for member in members.get("items", []):
print(member)
OpenAPI-Spezifikation exportieren
Die vollständige OpenAPI-3-Spezifikation liegt unter api.digitalmembers.ch/openapi/. Damit generierst du dir eigene Clients oder durchsuchst alle Endpunkte maschinell.
Der Abruf der Spezifikation braucht Authentifizierung. Ohne gültiges Token antwortet die Schnittstelle mit 401.
Beispiel in JavaScript:
const token = await fetch(
"https://auth.digitalmembers.ch/realms/members/protocol/openid-connect/token",
{
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: new URLSearchParams({
grant_type: "client_credentials",
client_id: CLIENT_ID,
client_secret: CLIENT_SECRET,
}),
},
).then(r => r.json()).then(d => d.access_token)
const openapi = await fetch("https://api.digitalmembers.ch/openapi/", {
headers: { Authorization: `Bearer ${token}` },
}).then(r => r.json())
console.log(openapi)
TypeScript-Client generieren
Aus der OpenAPI-Spezifikation generierst du dir mit dem öffentlichen openapi-generator-cli einen fertigen TypeScript-Client. Das Tool läuft eigenständig über npx, ohne Abhängigkeit zu DigitalMembers. Denselben Ansatz gibt es auch für Python und viele weitere Sprachen, du tauschst dazu nur den Generator-Namen (zum Beispiel python statt typescript-axios).
# 1. OpenAPI-Spezifikation mit Token herunterladen curl -s https://api.digitalmembers.ch/openapi/ \ -H "Authorization: Bearer $TOKEN" > openapi.json # 2. TypeScript-Client generieren npx @openapitools/openapi-generator-cli generate \ -i openapi.json \ -g typescript-axios \ -o ./digitalmembers-client
Interaktive Dokumentation
Alle Endpunkte, Parameter und Antwortformate findest du in der durchsuchbaren Swagger-Oberfläche unter docs.digitalmembers.ch. Melde dich mit deinem DigitalMembers-Konto an, wähle einen Service und probiere jeden Endpunkt direkt im Browser aus.
Schlüssel widerrufen
- Gehe zu Organisation → Einstellungen → API-Schlüssel
- Klicke beim entsprechenden Schlüssel auf Löschen
- Der Schlüssel ist sofort ungültig
Sicherheitshinweis
Behandle API-Schlüssel wie Passwörter. Teile sie nicht in Code-Repositories oder öffentlichen Chats. DigitalMembers übernimmt keine Haftung für Schäden durch gestohlene oder missbrauchte Schlüssel.