Gérer les équipes White Label avec API et MCP
Invitez des clients, contrôlez l'accès aux domaines, suspendez ou restaurez des membres et consultez l'activité White Label via API REST et outils MCP.
Détails de l’article
Type, difficulté, forfaits et date de dernière mise à jour.
▼
Détails de l’article
Type, difficulté, forfaits et date de dernière mise à jour.
- Type
- Référence
- Difficulté
- Intermédiaire
- Forfaits
- Pro · Agency · + White Label add-on
- Dernière mise à jour
- 9 sept. 2026
Les comptes White Label peuvent être gérés sans revenir au tableau de bord. L'API REST et le serveur MCP couvrent l'état de configuration du compte, les clients et les membres de l'équipe, les rôles, l'accès aux domaines, les invitations, les suspensions, les suppressions, les restaurations et l'historique des activités. La personnalisation de la marque fait partie du même ensemble d'outils White Label et possède son propre guide de personnalisation de la marque.
La limite importante est simple: une connexion ne peut jamais accorder plus d'accès que la personne qui l'utilise n'en possède déjà. Un gestionnaire limité à certains domaines ne peut pas inviter quelqu'un sur des domaines sans rapport, et un rôle personnalisé ne peut pas accorder des autorisations que l'appelant ne détient pas.
Fonctionnalités disponibles
Le catalogue MCP complet contient désormais 261 outils via stdio et jusqu'à 260 outils via HTTP hébergé. White Label fournit 20 outils: sept pour la personnalisation de la marque et 13 pour la gestion des comptes, des membres et des activités.
Ces outils ne sont pas chargés pour tout le monde. TrekMail évalue en temps réel le droit White Label du compte, l'adhésion actuelle de la personne, le jeton ou l'autorisation OAuth, toute restriction de domaine, les ensembles d'outils sélectionnés et les paramètres de sécurité locaux avant de générer tools/list. Une connexion sans accès à White Label ne reçoit aucun schéma.
États des droits
| État | Propriétaire | Membres délégués | Écritures |
|---|---|---|---|
| Actif | Accès complet autorisé par les portées | Accès autorisé par les portées et l'adhésion | Disponibles |
| Délai de grâce après annulation | Accès de récupération en lecture seule | Accès à White Label supprimé | Bloquées |
| Indisponible | Aucun accès à l'API ou à MCP de White Label | Aucun accès à l'API ou à MCP de White Label | Bloquées |
Avec un accès en lecture à White Label, appelez GET /api/v1/white-label ou l'outil get_white_label pour distinguer l'état active du mode grace en lecture seule, et pour consulter la progression de la configuration et l'échéance du délai de grâce. Un compte indisponible ne peut pas appeler cet endpoint: lorsqu'un identifiant enregistré mentionne encore une portée White Label que le compte ne peut plus utiliser, l'API renvoie scope_blocked_by_entitlement et indique où la réactiver.
Portées
| Portée | Ce qu'elle permet |
|---|---|
branding:read |
Lire les paramètres de marque, les ressources, les hôtes, les enregistrements DNS et l'état de la configuration |
branding:write |
Modifier la marque, les ressources, les aperçus, les hôtes et les vérifications DNS |
members:read |
Lire les clients, les membres de l'équipe, les rôles, l'accès aux domaines et le catalogue des accès |
members:write |
Inviter des personnes et mettre à jour, suspendre, reprendre, supprimer ou restaurer l'accès |
activity:read |
Lire l'activité du compte White Label et les connexions des membres |
L'endpoint d'activité d'un membre nécessite à la fois activity:read et members:read, car sa réponse contient une fiche de membre ainsi que l'activité. La connexion OAuth hébergée utilise le sélecteur tools:white_label pour demander cette famille d'outils; les portées REST effectives restent limitées par le compte et l'adhésion.
Pour un serveur MCP auto-hébergé, ajoutez white_label à TREKMAIL_TOOLSETS lorsque vous utilisez une liste d'ensembles d'outils autorisés. Les outils d'écriture respectent également les protections de sécurité locales décrites ci-dessous.
Endpoints REST
Tous les chemins se trouvent sous https://trekmail.net/api/v1.
| Méthode | Chemin | Portée | Objectif |
|---|---|---|---|
GET |
/white-label |
branding:read |
Lire les droits, la marque par défaut, la progression de la configuration et l'état des domaines accessibles |
GET |
/white-label/access-catalog |
members:read |
Lire les rôles, les groupes d'autorisations, les autorisations accordables et les domaines accessibles |
GET |
/white-label/members |
members:read |
Répertorier les membres et les invitations, avec recherche et filtres d'état |
POST |
/white-label/members |
members:write |
Inviter un client ou un collègue |
GET |
/white-label/members/{id} |
members:read |
Lire un membre et ses prochaines opérations autorisées |
PATCH |
/white-label/members/{id} |
members:write |
Modifier le rôle, l'accès aux domaines, les autorisations personnalisées ou la note |
POST |
/white-label/members/{id}:suspend |
members:write |
Arrêter immédiatement l'accès et révoquer les clés du membre |
POST |
/white-label/members/{id}:resume |
members:write |
Reprendre une adhésion suspendue |
POST |
/white-label/members/{id}:resend-invitation |
members:write |
Remplacer une invitation en attente et en envoyer une nouvelle |
DELETE |
/white-label/members/{id} |
members:write |
Supprimer l'accès et révoquer les clés du membre |
POST |
/white-label/members/{id}:restore |
members:write |
Restaurer une adhésion supprimée sans réactiver les anciennes clés |
GET |
/white-label/activity |
activity:read |
Lire l'activité du compte, avec filtrage facultatif par action ou membre |
GET |
/white-label/members/{id}/activity |
activity:read + members:read |
Lire les actions et les connexions récentes d'un membre |
Chaque écriture de ce tableau nécessite un en-tête Idempotency-Key. Répéter la même requête avec la même clé renvoie le résultat sûr d'origine; les secrets à usage unique présents dans une répétition, comme un jeton d'invitation, sont masqués. Réutiliser une clé avec un corps différent renvoie idempotency_mismatch.
Lire d'abord le catalogue des accès
Ne codez pas en dur les autorisations des rôles dans une intégration. Appelez le catalogue des accès avant une invitation ou une modification d'accès. Ses indicateurs grantable reflètent l'adhésion actuelle de l'appelant et peuvent changer lorsque le propriétaire modifie cette adhésion.
Les rôles actuellement proposés pour les nouvelles invitations sont:
client- gère les domaines et les boîtes mail attribués sans voir la relation privée du revendeur avec TrekMail.webmail_only- apparaît dans la liste de l'équipe, mais ne reçoit aucune autorisation pour le tableau de bord.domain_admin- gère les domaines attribués et leur DNS, mais pas les boîtes mail.mailbox_operator- gère les boîtes mail dans les domaines attribués, mais pas les domaines eux-mêmes.read_only- peut examiner la partie autorisée du compte sans la modifier.custom- reçoit uniquement les autorisations énumérées danspermissions.
Certains rôles exigent des domain_ids explicites; d'autres peuvent utiliser all_domains. Le catalogue des accès indique la règle applicable. Si l'appelant tente d'accorder un rôle, une autorisation ou un ensemble de domaines plus large, TrekMail renvoie scope_blocked_by_membership au lieu de restreindre silencieusement l'invitation.
Inviter un client
curl -s -X POST "https://trekmail.net/api/v1/white-label/members" \
-H "Authorization: Bearer tm_live_your_token" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: invite-northwind-admin-20260904" \
-d '{
"email": "admin@northwind.example",
"role": "client",
"all_domains": false,
"domain_ids": [123, 124],
"note": "Northwind primary contact"
}'
La réponse inclut le membre, l'état de réussite de l'envoi de l'e-mail et une URL d'invitation à usage unique. Un problème de livraison n'efface pas l'invitation: le propriétaire peut copier l'URL ou la renvoyer plus tard.
Pour un rôle personnalisé, lisez grantable_permissions dans le catalogue des accès et envoyez les valeurs sélectionnées dans permissions. Au moins une autorisation est requise.
Suivre l'état du membre
Chaque réponse concernant un membre inclut allowed_operations. Utilisez cette liste au lieu de faire des suppositions:
- Une invitation en attente peut être mise à jour, suspendue, renvoyée ou supprimée.
- Un membre actif peut être mis à jour, suspendu ou supprimé.
- Un membre suspendu peut être mis à jour, réactivé ou supprimé.
- Un membre supprimé peut être restauré.
- La ligne du propriétaire est visible à titre de contexte, mais elle ne peut pas être modifiée par ces endpoints.
La liste est également filtrée pour l'appelant actuel. Elle est vide pour une connexion en lecture seule, pour l'adhésion propre de l'appelant et pour les membres dont les autorisations dépassent ce que l'appelant peut gérer.
Les appelants ne peuvent ni se supprimer ni se suspendre eux-mêmes. Les appelants délégués ne peuvent pas non plus gérer un membre dont l'accès est plus étendu que le leur. Les transitions non valides renvoient membership_state_conflict avec une indication invitant à relire le membre.
La suspension ou la suppression d'une personne révoque les clés d'API et de boîte mail créées dans le cadre de cette adhésion. La reprise ou la restauration de l'adhésion ne rétablit jamais ces anciennes clés; la personne doit se reconnecter ou créer de nouveaux identifiants.
Limites relatives à l'activité et à la confidentialité
GET /white-label/activity renvoie les invitations, les changements de rôle et de domaine, les suspensions, les suppressions, les restaurations et les actions de sécurité associées. Filtrez avec action, member_id et per_page.
GET /white-label/members/{id}/activity combine les actions de ce membre sur le compte avec ses connexions récentes, notamment l'heure, l'adresse IP, la localisation approximative, le navigateur, le système d'exploitation et le type d'appareil. Cette route exige volontairement les deux portées de lecture. Les appelants soumis à des restrictions de domaine peuvent uniquement demander des membres qui se trouvent entièrement dans leur périmètre de domaines; un membre inaccessible est renvoyé sous la forme 404, afin que l'endpoint ne révèle pas l'existence d'un autre locataire ou client.
Outils MCP
| Outil | Protection | Objectif |
|---|---|---|
get_white_label |
Lecture | Droits, marque, progression de la configuration et domaines |
get_white_label_access_catalog |
Lecture | Rôles, autorisations et domaines que l'appelant peut accorder |
list_white_label_members |
Lecture | Rechercher ou filtrer les clients, les membres et les invitations |
get_white_label_member |
Lecture | Lire un membre et les prochaines opérations autorisées |
invite_white_label_member |
Envoi | Créer et envoyer une invitation par e-mail |
update_white_label_member |
Destructif | Modifier le rôle, les domaines, les autorisations ou la note |
suspend_white_label_member |
Destructif | Arrêter l'accès et révoquer les clés actives |
resume_white_label_member |
Destructif | Reprendre une adhésion suspendue |
resend_white_label_invitation |
Envoi | Remplacer et envoyer par e-mail une invitation en attente |
remove_white_label_member |
Destructif + confirmation | Supprimer l'accès et révoquer les clés actives |
restore_white_label_member |
Destructif | Restaurer une adhésion supprimée |
list_white_label_activity |
Lecture | Lire l'activité du compte |
get_white_label_member_activity |
Lecture | Lire les actions et les connexions d'un membre |
Les outils d'invitation nécessitent TREKMAIL_ALLOW_SENDING=true sur un serveur MCP stdio auto-hébergé. Les outils qui modifient les accès nécessitent TREKMAIL_ALLOW_DESTRUCTIVE=true; la suppression nécessite également confirm_remove=true. Ces options sont des contrôles de sécurité locaux, et non des autorisations d'API supplémentaires. Le serveur MCP hébergé applique sa propre politique de sécurité approuvée.
Les outils créent des clés d'idempotence déterministes lorsque vous n'en fournissez pas. Fournir votre propre idempotency_key est utile lorsqu'un flux de travail peut redémarrer dans un autre processus.
Un flux d'automatisation sûr
- Appelez
get_white_label. Arrêtez-vous surscope_blocked_by_entitlement; dans une réponsegraceréussie, poursuivez uniquement avec des lectures. - Appelez
get_white_label_access_catalogimmédiatement avant d'accorder l'accès. - Répertoriez ou lisez le membre cible avant de le modifier.
- Vérifiez
allowed_operations, le rôle prévu, les autorisations et les identifiants de domaine. - Utilisez une clé d'idempotence stable pour l'écriture.
- Relisez le membre et indiquez l'état obtenu ainsi que les autorisations effectives.
- Consultez l'activité White Label lorsque vous avez besoin d'une trace d'audit de la modification.
Erreurs qui indiquent la marche à suivre
| Code | Signification | Étape suivante |
|---|---|---|
insufficient_scope |
La portée requise n'a jamais été accordée à l'identifiant | Ajoutez cette portée ou autorisez à nouveau la connexion OAuth |
scope_blocked_by_entitlement |
L'autorisation enregistrée existe, mais White Label n'est pas actif pour elle actuellement | Réactivez White Label, puis réémettez ou autorisez à nouveau l'identifiant |
scope_blocked_by_membership |
Le rôle actuel de la personne est plus restreint que l'action ou l'autorisation demandée | Demandez au propriétaire de modifier l'adhésion ou sollicitez un accès plus limité |
member_not_manageable |
La cible est le propriétaire, l'appelant lui-même ou un membre disposant d'un accès plus large | Choisissez un membre situé dans le périmètre de gestion de l'appelant |
membership_state_conflict |
L'opération ne correspond pas à l'état actuel du membre | Lisez allowed_operations et choisissez l'une de ces actions |
missing_idempotency_key |
Une écriture a été envoyée sans clé | Réessayez avec un en-tête Idempotency-Key stable |
idempotency_mismatch |
La même clé a été réutilisée pour des données différentes | Utilisez les données d'origine ou créez une nouvelle clé |
Articles connexes
Articles similaires
Accédez aux guides voisins qui prolongent votre démarche.