Управление командами White Label через API и MCP
Приглашайте клиентов, управляйте доменами, блокируйте или восстанавливайте участников и смотрите активность White Label через REST API и MCP.
Сведения о статье
Тип, сложность, тарифы и дата последнего обновления.
▼
Сведения о статье
Тип, сложность, тарифы и дата последнего обновления.
- Тип
- Справочная статья
- Сложность
- Средний уровень
- Тарифы
- Pro · Agency · + White Label add-on
- Обновлено
- 9 сен 2026 г.
Аккаунтами White Label можно управлять, не возвращаясь к панели. REST API и сервер MCP охватывают состояние настройки аккаунта, клиентов и участников команды, роли, доступ к доменам, приглашения, блокировки, удаления, восстановления и историю действий. Оформление бренда входит в тот же набор инструментов White Label и описано в отдельном руководстве по брендингу.
Важное ограничение простое: подключение никогда не может выдать больше доступа, чем уже есть у стоящего за ним пользователя. Менеджер, ограниченный определенными доменами, не может пригласить кого-либо в посторонние домены, а пользовательская роль не может предоставить разрешения, которых нет у вызывающего пользователя.
Доступные возможности
Полный каталог MCP теперь содержит 261 инструмент через stdio и до 260 инструментов через размещенный HTTP. White Label добавляет 20 инструментов: семь для брендинга и 13 для управления аккаунтом, участниками и действиями.
Эти инструменты загружаются не для всех. Перед формированием tools/list TrekMail проверяет текущее право аккаунта на White Label, актуальное членство пользователя, токен или разрешение OAuth, ограничения доменов, выбранные наборы инструментов и локальные настройки безопасности. Подключение без доступа к White Label вообще не получает схемы.
Состояния права доступа
| Состояние | Владелец | Делегированные участники | Запись |
|---|---|---|---|
| Активно | Полный доступ в пределах областей | Доступ в пределах областей и членства | Доступна |
| Льготный период после отмены | Доступ для восстановления только на чтение | Доступ к White Label удален | Заблокирована |
| Недоступно | Нет доступа к API или MCP White Label | Нет доступа к API или MCP White Label | Заблокирована |
При наличии доступа к White Label на чтение вызовите GET /api/v1/white-label или инструмент get_white_label, чтобы отличить active от режима grace только для чтения, а также увидеть ход настройки и срок окончания льготного периода. Недоступный аккаунт не может вызвать этот endpoint: если сохраненные учетные данные все еще содержат область White Label, которой аккаунт больше не может пользоваться, API возвращает scope_blocked_by_entitlement и объясняет, где ее повторно активировать.
Области доступа
| Область | Что она разрешает |
|---|---|
branding:read |
Читать настройки бренда, ресурсы, хосты, записи DNS и состояние настройки |
branding:write |
Изменять брендинг, ресурсы, предпросмотры, хосты и проверки DNS |
members:read |
Читать данные клиентов, участников команды, ролей, доступа к доменам и каталога доступа |
members:write |
Приглашать пользователей, а также обновлять, блокировать, возобновлять, удалять или восстанавливать доступ |
activity:read |
Читать историю действий аккаунта White Label и входов участников |
Endpoint действий участника требует одновременно activity:read и members:read, поскольку его ответ содержит как запись участника, так и действия. Размещенное подключение OAuth использует селектор tools:white_label для запроса этого семейства инструментов; эффективные области REST по-прежнему ограничены аккаунтом и членством.
Для самостоятельно размещенного сервера MCP добавьте white_label в TREKMAIL_TOOLSETS, если используется список разрешенных наборов инструментов. Инструменты записи также соблюдают описанные ниже локальные ограничения безопасности.
Endpoints REST
Все пути находятся под https://trekmail.net/api/v1.
| Метод | Путь | Область | Назначение |
|---|---|---|---|
GET |
/white-label |
branding:read |
Читать право доступа, бренд по умолчанию, ход настройки и состояние доступных доменов |
GET |
/white-label/access-catalog |
members:read |
Читать роли, группы разрешений, доступные для выдачи разрешения и доступные домены |
GET |
/white-label/members |
members:read |
Получать список участников и приглашений с поиском и фильтрами состояния |
POST |
/white-label/members |
members:write |
Пригласить клиента или коллегу |
GET |
/white-label/members/{id} |
members:read |
Читать данные одного участника и его разрешенные следующие операции |
PATCH |
/white-label/members/{id} |
members:write |
Изменить роль, доступ к доменам, пользовательские разрешения или примечание |
POST |
/white-label/members/{id}:suspend |
members:write |
Немедленно остановить доступ и отозвать ключи участника |
POST |
/white-label/members/{id}:resume |
members:write |
Возобновить приостановленное членство |
POST |
/white-label/members/{id}:resend-invitation |
members:write |
Заменить ожидающее приглашение и отправить новое |
DELETE |
/white-label/members/{id} |
members:write |
Удалить доступ и отозвать ключи участника |
POST |
/white-label/members/{id}:restore |
members:write |
Восстановить удаленное членство без повторной активации старых ключей |
GET |
/white-label/activity |
activity:read |
Читать действия аккаунта с необязательным фильтром по действию или участнику |
GET |
/white-label/members/{id}/activity |
activity:read + members:read |
Читать действия и недавние входы одного участника |
Для каждой операции записи в этой таблице требуется заголовок Idempotency-Key. Повторение того же запроса с тем же ключом возвращает исходный безопасный результат; одноразовые секреты в повторе, например токен приглашения, скрываются. Повторное использование ключа с другим телом возвращает idempotency_mismatch.
Сначала прочитайте каталог доступа
Не задавайте разрешения ролей в коде интеграции. Вызывайте каталог доступа перед приглашением или изменением доступа. Его флаги grantable отражают текущее членство вызывающего пользователя и могут измениться, когда владелец корректирует это членство.
Сейчас для новых приглашений предлагаются следующие роли:
client- управляет назначенными доменами и почтовыми ящиками, не видя конфиденциальных отношений реселлера с TrekMail.webmail_only- отображается в списке команды, но не получает разрешений панели.domain_admin- управляет назначенными доменами и их DNS, но не почтовыми ящиками.mailbox_operator- управляет почтовыми ящиками в назначенных доменах, но не самими доменами.read_only- может просматривать разрешенную часть аккаунта без внесения изменений.custom- получает только разрешения, перечисленные вpermissions.
Некоторым ролям требуются явно заданные domain_ids; другие могут использовать all_domains. Каталог доступа указывает применимое правило. Если вызывающий пользователь попытается предоставить более широкую роль, разрешение или набор доменов, TrekMail вернет scope_blocked_by_membership, а не будет незаметно сужать приглашение.
Приглашение клиента
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"
}'
Ответ содержит данные участника, статус успешной доставки письма и одноразовый URL приглашения. Проблема с доставкой не удаляет приглашение: владелец может скопировать URL или отправить приглашение повторно позднее.
Для пользовательской роли прочитайте grantable_permissions из каталога доступа и отправьте выбранные значения в permissions. Требуется хотя бы одно разрешение.
Отслеживание состояния участника
Каждый ответ об участнике содержит allowed_operations. Используйте этот список вместо предположений:
- Ожидающее приглашение можно обновить, приостановить, отправить повторно или удалить.
- Активного участника можно обновить, приостановить или удалить.
- Приостановленного участника можно обновить, активировать или удалить.
- Удаленного участника можно восстановить.
- Строка владельца видна для контекста, но ее нельзя изменить через эти endpoints.
Список также фильтруется для текущего вызывающего пользователя. Он пуст для подключения только на чтение, для собственного членства вызывающего пользователя и для участников, чьи разрешения шире доступных вызывающему пользователю возможностей управления.
Вызывающие пользователи не могут удалить или заблокировать себя. Делегированные вызывающие пользователи также не могут управлять участником, чей доступ шире их собственного. Недопустимые переходы возвращают membership_state_conflict с подсказкой повторно прочитать данные участника.
Приостановка или удаление пользователя отзывает ключи API и почтовых ящиков, созданные в рамках этого членства. Возобновление или восстановление членства никогда не возвращает старые ключи; пользователю необходимо подключиться заново или создать новые учетные данные.
Границы действий и конфиденциальности
GET /white-label/activity возвращает приглашения, изменения ролей и доменов, блокировки, удаления, восстановления и связанные действия безопасности. Используйте фильтры action, member_id и per_page.
GET /white-label/members/{id}/activity объединяет действия участника в аккаунте с недавними входами, включая время, IP-адрес, примерное местоположение, браузер, операционную систему и тип устройства. Этот маршрут намеренно требует обе области чтения. Вызывающие пользователи с ограничениями по доменам могут запрашивать только участников, полностью находящихся в пределах их доменной границы; недоступный участник возвращается как 404, поэтому endpoint не раскрывает существование другого клиента или арендатора.
Инструменты MCP
| Инструмент | Защита | Назначение |
|---|---|---|
get_white_label |
Чтение | Право доступа, бренд, ход настройки и домены |
get_white_label_access_catalog |
Чтение | Роли, разрешения и домены, которые может предоставить вызывающий пользователь |
list_white_label_members |
Чтение | Искать или фильтровать клиентов, участников и приглашения |
get_white_label_member |
Чтение | Читать данные участника и разрешенные следующие операции |
invite_white_label_member |
Отправка | Создать и отправить приглашение по электронной почте |
update_white_label_member |
Разрушительное действие | Изменить роль, домены, разрешения или примечание |
suspend_white_label_member |
Разрушительное действие | Остановить доступ и отозвать активные ключи |
resume_white_label_member |
Разрушительное действие | Возобновить приостановленное членство |
resend_white_label_invitation |
Отправка | Заменить и отправить по электронной почте ожидающее приглашение |
remove_white_label_member |
Разрушительное действие + подтверждение | Удалить доступ и отозвать активные ключи |
restore_white_label_member |
Разрушительное действие | Восстановить удаленное членство |
list_white_label_activity |
Чтение | Читать действия аккаунта |
get_white_label_member_activity |
Чтение | Читать действия и входы одного участника |
Для инструментов приглашения требуется TREKMAIL_ALLOW_SENDING=true в самостоятельно размещенном MCP stdio. Для инструментов изменения доступа требуется TREKMAIL_ALLOW_DESTRUCTIVE=true; для удаления также требуется confirm_remove=true. Эти переключатели являются локальными средствами безопасности, а не дополнительными разрешениями API. Размещенный MCP применяет собственную утвержденную политику безопасности.
Инструменты создают детерминированные ключи идемпотентности, если вы не предоставляете свой. Собственный idempotency_key полезен, если рабочий процесс может перезапуститься в другом процессе.
Безопасный процесс автоматизации
- Вызовите
get_white_label. Остановитесь приscope_blocked_by_entitlement; в успешном ответеgraceпродолжайте только чтение. - Вызовите
get_white_label_access_catalogнепосредственно перед предоставлением доступа. - Получите список или прочитайте данные целевого участника перед изменением.
- Проверьте
allowed_operations, нужную роль, разрешения и идентификаторы доменов. - Используйте стабильный ключ идемпотентности для записи.
- Снова прочитайте данные участника и сообщите итоговое состояние и фактические разрешения.
- Проверьте действия White Label, когда потребуется аудиторская запись об изменении.
Ошибки с указанием дальнейших действий
| Код | Значение | Следующий шаг |
|---|---|---|
insufficient_scope |
Учетным данным никогда не предоставлялась требуемая область | Добавьте эту область или повторно авторизуйте подключение OAuth |
scope_blocked_by_entitlement |
Сохраненное разрешение существует, но White Label сейчас для него не активен | Повторно активируйте White Label, затем перевыпустите или повторно авторизуйте учетные данные |
scope_blocked_by_membership |
Текущая роль пользователя дает меньше прав, чем нужны для запрошенного действия или доступа | Попросите владельца изменить членство или запросите меньший доступ |
member_not_manageable |
Целью является владелец, сам вызывающий пользователь или участник с более широким доступом | Выберите участника в пределах границ управления вызывающего пользователя |
membership_state_conflict |
Операция не соответствует текущему состоянию участника | Прочитайте allowed_operations и выберите одно из этих действий |
missing_idempotency_key |
Операция записи отправлена без ключа | Повторите попытку со стабильным Idempotency-Key |
idempotency_mismatch |
Один и тот же ключ повторно использован для разных входных данных | Используйте исходные входные данные или создайте новый ключ |
Связанные статьи
Похожие статьи
Перейдите к близким руководствам, которые продолжают рабочий процесс.