Menú

Referencia de la API · Miembros

Plantillas de permisos

members · presets · 6 operaciones

GET/v1/members/presets

List permission presets

members.presets.list

LecturaIdempotenteDesde 2026-11-01

Lists the organization's permission presets by name: named configurations of per-module permissions (module_permissions for the organization and, in a workspace, child_module_permissions for the member's assigned Accounts; module id → hidden, view_only or full_access) that an owner or admin applies to members and viewers with members.presets.apply. Requires view access to Members.

Alcance
members:read
Permiso
Ver el módulo
Tool del MCP
members_presets_listEn la superficie completa; en la compacta, mb_execute_operation con id: "members.presets.list".

Costo declarado: hasta 501 lecturas y 0 escrituras por llamada (cuentan en el cupo diario).

Parámetros

Sin parámetros.

Respuesta

dataarray<object>

Errores

Ejemplo

curl "https://api.mb-suite.com/v1/members/presets" \
  -H "Authorization: Bearer $MB_API_KEY"

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar.

curl "https://api.mb-suite.com/v1/members/presets" \
  -H "Authorization: Bearer $MB_TEST_KEY"
GET/v1/members/presets/{preset_id}

Get one permission preset

members.presets.get

LecturaIdempotenteDesde 2026-11-01

Returns one permission preset with its name, color, description and the two permission maps (organization and assigned Accounts). 404 permission_preset_not_found if it is not in this organization. Requires view access to Members.

Alcance
members:read
Permiso
Ver el módulo
Tool del MCP
members_presets_getEn la superficie completa; en la compacta, mb_execute_operation con id: "members.presets.get".

Costo declarado: hasta 1 lecturas y 0 escrituras por llamada (cuentan en el cupo diario).

Parámetros

preset_idstringrutarequerido

A permission preset id (members.presets.list).

Respuesta

idstring
namestring
colorstring | null
descriptionstring | null
module_permissionsobject
child_module_permissionsobject
created_atnumber | null
created_by_idstring | null
updated_atnumber | null

Errores

Ejemplo

curl "https://api.mb-suite.com/v1/members/presets/{preset_id}" \
  -H "Authorization: Bearer $MB_API_KEY"

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar.

curl "https://api.mb-suite.com/v1/members/presets/{preset_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY"
POST/v1/members/presets

Create a permission preset

members.presets.create

EscrituraDesde 2026-11-01

Creates a permission preset: a name (up to 80 characters), an optional color and description, module_permissions (module id → hidden, view_only or full_access for this organization) and, for workspaces, child_module_permissions (the same kind of map applied in every Account assigned to the member). Modules the organization does not have are kept in the preset and skipped when it is applied. Returns the preset. Owner or admin only.

Alcance
members:write
Permiso
Editar en el módulo · Solo owner, admin
Tool del MCP
members_presets_createEn la superficie completa; en la compacta, mb_execute_operation con id: "members.presets.create".

Costo declarado: hasta 1 lecturas y 1 escrituras por llamada (cuentan en el cupo diario).

Parámetros

namestringcuerporequerido

The preset's name (up to 80 characters).

colorstringcuerpoopcional

Its color in the app (#rrggbb).

descriptionstringcuerpoopcional

What the preset is for (up to 300 characters).

module_permissionsobjectcuerpoopcional

Module id → hidden, view_only or full_access, for the organization itself.

child_module_permissionsobjectcuerpoopcional

Workspaces only: the overrides for the member's assigned Accounts.

Respuesta

preset_idstring
presetobject

Errores

Ejemplo

curl -X POST "https://api.mb-suite.com/v1/members/presets" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "name": "NAME"
}'

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar.

curl -X POST "https://api.mb-suite.com/v1/members/presets" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "name": "NAME"
}'
PATCH/v1/members/presets/{preset_id}

Update a permission preset

members.presets.update

EscrituraIdempotenteDesde 2026-11-01

Updates a permission preset: name, color, description (null or empty removes it), module_permissions (replaces the map) and child_module_permissions (replaces the map; null or {} removes it). Unknown fields are rejected. Changing a preset does not change the members it was already applied to: apply it again with members.presets.apply. 404 permission_preset_not_found. Returns the preset. Owner or admin only.

Alcance
members:write
Permiso
Editar en el módulo · Solo owner, admin
Tool del MCP
members_presets_updateEn la superficie completa; en la compacta, mb_execute_operation con id: "members.presets.update".

Costo declarado: hasta 1 lecturas y 1 escrituras por llamada (cuentan en el cupo diario).

Parámetros

preset_idstringrutarequerido

A permission preset id (members.presets.list).

updatesobjectcuerporequerido

What changes: only the fields sent.

Respuesta

presetobject

Errores

Ejemplo

curl -X PATCH "https://api.mb-suite.com/v1/members/presets/{preset_id}" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "updates": {}
}'

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar.

curl -X PATCH "https://api.mb-suite.com/v1/members/presets/{preset_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "updates": {}
}'
DELETE/v1/members/presets/{preset_id}

Delete a permission preset

members.presets.delete

IrreversibleDesde 2026-11-01

Deletes a permission preset. The permissions of the members it was applied to do not change (they keep the preset id as their origin until edited). It stays 30 days in the trash, where an owner or admin can restore it with its id (platform.trash.restore). Outside the app it needs a dry run and a confirm_token, except a REST DELETE with a key allowed to delete. 404 permission_preset_not_found. Owner or admin only.

Con una API key, este DELETE se ejecuta directo: el registro queda 30 días en la papelera y la respuesta trae su trash_item_id. Con un token OAuth, y por el MCP, pide dry_run → confirm_token.

Alcance
members:write y «Permitir eliminar» (members:delete en OAuth)
Permiso
Editar en el módulo · Solo owner, admin
Tool del MCP
members_presets_deleteEn la superficie completa; en la compacta, mb_execute_operation con id: "members.presets.delete".

Costo declarado: hasta 2 lecturas y 1 escrituras por llamada (cuentan en el cupo diario).

Parámetros

preset_idstringrutarequerido

A permission preset id (members.presets.list).

Respuesta

oktrue
trash_item_idstring

The trash item this deletion left: the item_id of platform.trash.restore (POST /trash/{item_id}/restore). Missing if nothing went to the trash.

trash_item_idsarray<string>

Only when the deletion left more than one copy: all of them, the first being trash_item_id.

trash_expires_atnumber

When the copy leaves the trash for good (epoch ms): 30 days after the deletion.

Errores

Ejemplo

curl -X DELETE "https://api.mb-suite.com/v1/members/presets/{preset_id}" \
  -H "Authorization: Bearer $MB_API_KEY"

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar.

curl -X DELETE "https://api.mb-suite.com/v1/members/presets/{preset_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY"
POST/v1/members/presets/{preset_id}/apply

Apply a permission preset to members

members.presets.apply

EscrituraMasiva · hasta 500IdempotenteDesde 2026-11-01

Applies a permission preset to up to 500 members in one write: each member's per-module permissions are replaced by the preset's (only the modules the organization has active; the rest are counted in dropped_module_count) and the preset is recorded as their origin (applied_preset_id). Owners and admins are skipped (skipped_roles): they always have full access. In a workspace of an agency the preset's child_module_permissions apply to the member's assigned Accounts too. Members not found are returned in not_found. Fires members.member.permissions_changed once per member changed. Outside the app it requires a dry run (which lists who changes) and a confirm_token. Owner or admin only.

Pide confirmación: primero dry_run: true (vista previa y confirm_token, que vale 10 minutos y una sola vez), después el mismo cuerpo con confirm_token. En unas pocas, solo con ciertos datos: la descripción dice cuándo. Por qué y cómo: Vista previa y confirmación.

Alcance
members:write
Permiso
Editar en el módulo · Solo owner, admin
Tool del MCP
members_presets_applyEn la superficie completa; en la compacta, mb_execute_operation con id: "members.presets.apply".
Eventos que puede emitir
members.member.permissions_changed

Costo declarado: hasta 502 lecturas y 1 escrituras por llamada (cuentan en el cupo diario).

Parámetros

preset_idstringrutarequerido

A permission preset id (members.presets.list).

user_idsarray<string>cuerporequerido

The members that get the preset (owners and admins are skipped: they always have full access).

Respuesta

applied_countnumber
skipped_rolesnumber
dropped_module_countnumber
not_foundarray<string>

Errores

Ejemplo

curl -X POST "https://api.mb-suite.com/v1/members/presets/{preset_id}/apply" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "user_ids": [
    "USER_ID"
  ],
  "dry_run": true
}'

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar.

curl -X POST "https://api.mb-suite.com/v1/members/presets/{preset_id}/apply" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "user_ids": [
    "USER_ID"
  ],
  "dry_run": true
}'