Lists the monitor templates this organization can use. A monitor is a one-page dashboard built for ONE platform and shown in that platform's tab of the Monitors page. Sources: the organization's own templates (ORGANIZATION, drafts included), the published templates of its workspace when it is an account (INHERITED) and the published system monitors (SYSTEM). Filter with source, platform (only templates that can be assigned to that platform's tab) and status. Each item has its platform, status, version (as stored; null when it has none), page and widget counts, and who created it (created_by, created_by_name); the description says what a system monitor shows (KPIs, Daily, Monthly…). Use monitors.templates.get for its widgets. Paginated by cursor (own templates first, by manual position).
Scope
monitors:read
Permission
View the module
MCP tool
monitors_templates_listOn the full surface; on the compact one, mb_execute_operation with id: "monitors.templates.list".
Declared cost: up to 801 reads and 0 writes per call (they count against the daily quota).
Parameters
limitintegerqueryoptional
How many items this page brings at most (see the maximum and the default in the schema).
Default: 50
cursorstringqueryoptional
The next_cursor of the previous page, exactly as it came (only for the same list and filters); without it, the first page.
sourceenumqueryoptional
Where from: ORGANIZATION (its own, drafts included), INHERITED (the published ones of its workspace, for an account), SYSTEM (MB Suite's published monitors) or all (default).
Values: all, SYSTEM, ORGANIZATION, INHERITED · Default: "all"
platformenumqueryoptional
Only the templates that can be assigned to this platform's tab.
Returns a monitor template with its platform, version (as stored; null when it has none), date range, filters and its page with a summary of each widget (type, title, metrics, dimensions, grid position; no numbers: those load when the monitor is opened in MB Suite). Without source it looks in the organization's own templates, then the workspace's published ones (for an account), then the published system monitors. Not found (monitor_template_not_found) if no reachable template has that id.
Scope
monitors:read
Permission
View the module
MCP tool
monitors_templates_getOn the full surface; on the compact one, mb_execute_operation with id: "monitors.templates.get".
Declared cost: up to 3 reads and 0 writes per call (they count against the daily quota).
Parameters
template_idstringpathrequired
The monitor template id (monitors.templates.list).
sourceenumqueryoptional
Where to look: ORGANIZATION, INHERITED or SYSTEM. Without it, the organization's own, then its workspace's published ones, then the system's.
Values: SYSTEM, ORGANIZATION, INHERITED
Response
idstring
Template id.
sourceenum
SYSTEM, ORGANIZATION or INHERITED (published by the workspace).
Values: SYSTEM, ORGANIZATION, INHERITED
source_org_idstring | null
INHERITED: the workspace it belongs to.
titlestring
Title.
descriptionstring | null
Description.
subtitlestring | null
Subtitle.
statusenum
draft or published (accounts only see and deploy published ones).
Values: draft, published
supported_platformsarray<string>
Platforms it is built for.
data_source_slotsarray<object>
Data slots a dashboard maps to its own sources.
default_data_sourcestring | null
The slot or platform widgets without a source use.
page_countnumber
How many pages.
widget_countnumber
How many widgets.
label_idsarray<string>
Template labels (dashboards.labels.list with of: templates).
positionnumber | null
Manual order in the list.
versionnumber | null
Template version (goes up by one with each update).
created_atnumber | null
Created (epoch ms).
updated_atnumber | null
Last edited (epoch ms).
created_bystring | null
Uid of who created it, or the system label that did.
Creates a draft monitor template in this organization for one platform (one of the platforms with a monitor tab; the CRM has none), with a title, an optional description and one empty page. Its widgets are designed in MB Suite's monitor editor; publish it with monitors.templates.publish so it can be assigned (monitors.assignments.set) and, for a workspace, used by its accounts. To start from a system monitor use monitors.templates.clone instead. Returns the template id. Requires edit access to Monitors.
Scope
monitors:write
Permission
Edit in the module
MCP tool
monitors_templates_createOn the full surface; on the compact one, mb_execute_operation with id: "monitors.templates.create".
Declared cost: up to 0 reads and 1 writes per call (they count against the daily quota).
Parameters
titlestringbodyrequired
The template title (up to 200 characters).
platformenumbodyrequired
The platform it is built for: the tab it can be assigned to (it cannot change later).
Updates the title, description, subtitle, labels or cover gradient of one of the organization's own monitor templates (the fields go at the top level of the input, next to template_id). label_ids replaces the template's labels and must be ids from monitors.labels.list (label_unknown otherwise). Widgets are designed in MB Suite's monitor editor; the publication status changes with monitors.templates.publish; the platform cannot change. Tabs that show this monitor (here and, for a published workspace template, in its accounts) show the new details. Returns the updated template. Requires edit access to Monitors.
Scope
monitors:write
Permission
Edit in the module
MCP tool
monitors_templates_updateOn the full surface; on the compact one, mb_execute_operation with id: "monitors.templates.update".
Declared cost: up to 51 reads and 1 writes per call (they count against the daily quota).
Parameters
template_idstringpathrequired
The monitor template id (monitors.templates.list).
titlestringbodyoptional
New title (up to 200 characters).
descriptionstringbodyoptional
New description (up to 2000 characters).
subtitlestringbodyoptional
New subtitle (up to 500 characters).
label_idsarray<string>bodyoptional
Replaces the template's labels: ids from monitors.labels.list (label_unknown otherwise; up to 50).
Publish a monitor template or move it back to draft
monitors.templates.publish
WriteIdempotentSince 2026-11-01
Sets the publication status of one of the organization's own monitor templates: published (it can be assigned to its platform's tab, and a workspace's published templates are offered to its accounts as INHERITED) or draft (status: draft; tabs that already show it fall back to the monitor picker until it is published again). Idempotent: changed is false when it already had that status. Requires edit access to Monitors.
Scope
monitors:write
Permission
Edit in the module
MCP tool
monitors_templates_publishOn the full surface; on the compact one, mb_execute_operation with id: "monitors.templates.publish".
Copies one of the organization's own monitor templates (page, widgets, filters, style, platform) into a new draft titled '<title> (Copia)' (the suffix in the caller's language: (Copia), (Copy) or (Cópia)). Returns the new template id. Requires edit access to Monitors.
Scope
monitors:write
Permission
Edit in the module
MCP tool
monitors_templates_duplicateOn the full surface; on the compact one, mb_execute_operation with id: "monitors.templates.duplicate".
Declared cost: up to 1 reads and 1 writes per call (they count against the daily quota).
Parameters
template_idstringpathrequired
The monitor template id (monitors.templates.list).
curl-X POST "https://api.mb-suite.com/v1/monitors/templates/{template_id}/duplicate" \
-H"Authorization: Bearer $MB_API_KEY"
Try it with your test API key
With a test API key the request always goes to your practice organization: example data you can reset.
curl-X POST "https://api.mb-suite.com/v1/monitors/templates/{template_id}/duplicate" \
-H"Authorization: Bearer $MB_TEST_KEY"
POST/v1/monitors/templates/clone
Copy a system monitor into the organization
monitors.templates.clone
WriteSince 2026-11-01
Copies a published system monitor (source SYSTEM in monitors.templates.list) into the organization's own templates as a draft, so it can be customized and published; title names the copy (default the system monitor's title with the copy suffix in the caller's language, e.g. '<title> (Copia)'), and it goes after the organization's own templates. To just use a system monitor as it is, assign it directly with monitors.assignments.set (source SYSTEM). Returns the new template id. Not found (system_monitor_not_found) if there is no published system monitor with that id. Requires edit access to Monitors.
Scope
monitors:write
Permission
Edit in the module
MCP tool
monitors_templates_cloneOn the full surface; on the compact one, mb_execute_operation with id: "monitors.templates.clone".
Declared cost: up to 1 reads and 1 writes per call (they count against the daily quota).
Parameters
system_template_idstringbodyrequired
The published system monitor to copy (source SYSTEM in monitors.templates.list).
titlestringbodyoptional
The copy's title. Without it, the system monitor's title with the copy suffix in the caller's language: (Copia), (Copy) or (Cópia).
Deletes one of the organization's own monitor templates. It goes to the 30-day trash. Platform tabs that show it (in this organization and, if a workspace published it, in its accounts) keep their assignment but show the monitor picker until it is restored; restoring it brings them back as they were. The dry run says how many of this organization's tabs use it. Outside the screen it requires a dry run and a confirm_token, except a plain REST DELETE with a key allowed to delete. Requires edit access to Monitors.
Instructions for agents
Before confirming, tell the person how many platform tabs show this monitor (the dry run says it) and that restoring it from the trash brings them back.
With an API key, this DELETE runs directly: the record stays 30 days in the trash and the response carries its trash_item_id. With an OAuth token, and through the MCP, it needs dry_run → confirm_token.
Scope
monitors:writeand “Allow deletions” (monitors:delete in OAuth)
Permission
Edit in the module
MCP tool
monitors_templates_deleteOn the full surface; on the compact one, mb_execute_operation with id: "monitors.templates.delete".
Declared cost: up to 52 reads and 2 writes per call (they count against the daily quota).
Parameters
template_idstringpathrequired
The monitor template id (monitors.templates.list).
Response
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.