Avec l’API DigitalMembers, tu peux créer tes propres intégrations. Tu peux, par exemple, exporter les données des membres vers d’autres systèmes, afficher le nombre actuel de membres sur le site de ton association, automatiser des tâches avec n8n ou créer une extension WordPress. L’API est une API REST ouverte conforme à la norme OpenAPI 3. Elle utilise l’authentification OAuth2 (Client Credentials).
Créer une clé API
- Va dans Paramètres → Organisation → Clés API
- Clique sur Créer une clé API
- Donne un nom à la clé et choisis les autorisations qui lui sont accordées
- Après la création, le secret de la clé (Client Secret) ne s’affiche qu’une seule fois. Enregistre-le tout de suite dans un endroit sûr
Le secret de la clé ne s’affiche qu’une seule fois. Tu ne peux plus le consulter ensuite. Si tu le perds, crée une nouvelle clé.
Tu retrouves toutes les clés créées dans la liste, avec leur date de création. Tu peux supprimer une clé à tout moment :
Obtenir un jeton (OAuth2 Client Credentials)
Avant de consulter des données, utilise client_id et le secret de la clé pour obtenir un jeton à durée limitée. Avec 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)
Avec 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"]
Consulter des données
Ajoute le jeton dans l’en-tête Bearer de chaque requête. Voici comment obtenir la liste des membres avec le point d’accès /v2/member/ sur api.digitalmembers.ch. Avec curl :
curl -s https://api.digitalmembers.ch/v2/member/ \ -H "Authorization: Bearer $TOKEN"
Avec Python :
members = requests.get(
"https://api.digitalmembers.ch/v2/member/",
headers={"Authorization": f"Bearer {token}"},
).json()
for member in members.get("items", []):
print(member)
Exemple en Python
Avec la bibliothèque requests, voici le même déroulement :
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"]
members = requests.get(
"https://api.digitalmembers.ch/v2/member/",
headers={"Authorization": f"Bearer {token}"},
).json()
print(members["items"])
Exporter la spécification OpenAPI
La spécification OpenAPI 3 complète se trouve sur api.digitalmembers.ch/openapi/. Tu peux l’utiliser pour générer tes propres clients ou parcourir automatiquement tous les points d’accès.
Tu dois t’authentifier pour consulter la spécification. Sans jeton valide, l’API répond avec le code 401.
Exemple en 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)
Générer un client TypeScript
Tu peux générer un client TypeScript prêt à l’emploi à partir de la spécification OpenAPI avec l’outil public openapi-generator-cli. Il fonctionne de manière autonome avec npx, sans dépendre de DigitalMembers. Tu peux faire la même chose pour Python et bien d’autres langages. Il suffit de remplacer le nom du générateur, par exemple python à la place de typescript-axios.
# 1. Télécharger la spécification OpenAPI avec le jeton curl -s https://api.digitalmembers.ch/openapi/ \ -H "Authorization: Bearer $TOKEN" > openapi.json # 2. Générer le client TypeScript npx @openapitools/openapi-generator-cli generate \ -i openapi.json \ -g typescript-axios \ -o ./digitalmembers-client
Documentation interactive
Tu trouveras tous les points d’accès, paramètres et formats de réponse dans l’interface Swagger consultable sur docs.digitalmembers.ch. Connecte-toi avec ton compte DigitalMembers, choisis un service et essaie chaque point d’accès directement dans ton navigateur.
Révoquer une clé
- Va dans Paramètres → Organisation → Clés API
- Clique sur Supprimer à côté de la clé concernée
- La clé cesse immédiatement de fonctionner
Conseil de sécurité
Protège tes clés API comme des mots de passe. Ne les partage pas dans des dépôts de code ou des discussions publiques. DigitalMembers décline toute responsabilité pour les dommages causés par des clés volées ou utilisées abusivement.