Lists the dashboard templates this organization can use: its own (ORGANIZATION, drafts included), the published templates of its workspace when it is an account (INHERITED) and the published system templates (SYSTEM). Each item has its data source slots (what a dashboard created from it has to map), supported platforms, status, version (system templates raise it when saved or published in their editor; the organization's start at 1, or at the version of the template they came from, and go up by one with every dashboards.templates.update, not with the editor's autosave; null when the template has none) page and widget counts, labels (dashboards.labels.list with of: templates) and who created it (created_by with created_by_name). Filter with source; paginated by cursor (limit 50 by default, up to 200; own templates first, by manual position). Use dashboards.templates.get for the pages and widgets.
Escopo
dashboards:read
Permissão
Ver o módulo
Tool do MCP
dashboards_templates_listNa superfície completa; na compacta, mb_execute_operation com id: "dashboards.templates.list".
Custo declarado: até 702 leituras e 0 escritas por chamada (contam na cota diária).
Parâmetros
limitintegerqueryopcional
How many templates per page (default 50, at most 200).
Padrão: 50
cursorstringqueryopcional
The next_cursor of the previous page, to get the next one; omit it for the first page.
sourceenumqueryopcional
Which templates: the organization's (ORGANIZATION), its workspace's published ones (INHERITED), the published system ones (SYSTEM) or all (default).
Valores: all, SYSTEM, ORGANIZATION, INHERITED · Padrão: "all"
Returns a dashboard template with its version (as in dashboards.templates.list), data source slots, date range, global filters (id, field, operator, value), the filter controls its viewers get (filter_controls: a field name, or {field, label, default_value, sort_field, sort_direction}; send them back as they are with dashboards.templates.update) and its pages with a summary of each widget (type, title, slot or source, metrics, dimensions, grid position). With raw: true it also returns raw_pages, the pages exactly as stored (each widget's internal configuration): use it to back a template up and to restore it with dashboards.templates.update (pages); it is not a stable format, so send back what you read instead of building it by hand. Without source it looks in the organization's own templates, then the workspace's published ones (for an account), then the published system templates. Not found if no reachable template has that id.
Escopo
dashboards:read
Permissão
Ver o módulo
Tool do MCP
dashboards_templates_getNa superfície completa; na compacta, mb_execute_operation com id: "dashboards.templates.get".
Custo declarado: até 3 leituras e 0 escritas por chamada (contam na cota diária).
Parâmetros
template_idstringrotaobrigatório
The template id (dashboards.templates.list).
sourceenumqueryopcional
Where to look first (SYSTEM, ORGANIZATION or INHERITED); the others are tried after.
Valores: SYSTEM, ORGANIZATION, INHERITED
rawbooleanqueryopcional
true: also the pages exactly as stored (raw_pages), to back them up and write them back with dashboards.templates.update.
Resposta
idstring
Template id.
sourceenum
SYSTEM, ORGANIZATION or INHERITED (published by the workspace).
Valores: 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).
Valores: 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 dashboard template in this organization with a title, optional description, supported platforms and default data source slot, and one empty page. Its widgets are designed in MB Suite's template editor; publish it with dashboards.templates.publish so the workspace's accounts can use it. Returns the template id. Requires edit access to Dashboards.
Escopo
dashboards:write
Permissão
Editar no módulo
Tool do MCP
dashboards_templates_createNa superfície completa; na compacta, mb_execute_operation com id: "dashboards.templates.create".
Custo declarado: até 0 leituras e 1 escritas por chamada (contam na cota diária).
Parâmetros
titlestringcorpoobrigatório
Title.
descriptionstringcorpoopcional
Description.
supported_platformsarray<string>corpoopcional
Platforms it is built for (google_ads, meta_ads, tiktok…). The platform ids of dashboards.data.sources work too (tiktok and tiktok_organic are the same platform).
default_data_sourcestringcorpoopcional
The slot or platform widgets without a source use (the screen sends the main platform).
Updates one of the organization's own templates: title, description, subtitle, labels (ids from dashboards.labels.list with of: templates; an unknown one is label_unknown), cover gradient, its default data source (a slot, one of its platforms or crm; null removes it; default_data_source_invalid otherwise), its global filters, its filter controls and/or its pages; only what you send changes, and every update raises the template's version by one (a template without a version counts as version 1; MB Suite's editor autosave does not change it). filters replaces the template's global filters ([] removes them); they are checked like MB Suite's filter editor: the template needs a default data source whose platform filters, each field is a filterable dimension or a metric of that platform, the operator one that platform runs for that field, and the value fits the operator (a list for in / not_in, [min, max] numbers for between, nothing for is_empty / is_not_empty, a short regex without nested quantifiers); a filter sent back unchanged (same id, field, operator and value) is kept as it was, and one without id gets a new one. filter_controls replaces the dropdowns the dashboard's viewers filter with ([] removes them; up to 20), each a field name or {field, label, default_value (one value or a list), sort_field (name or value), sort_direction (asc or desc)} as dashboards.templates.get returns them; each field must be one the template's platform offers as a filter control (the platform of its default data source, or of the slot that source names; without a default data source, its first supported platform with filter controls, none when its platforms have none, and Google Ads only when it declares no platform) and appear once, or 400 invalid_template_filter_control; a control sent back unchanged is kept as it was. Dashboards linked to the template without controls of their own get its controls. pages replaces all its pages with the stored form that dashboards.templates.get returns in raw_pages (with raw: true): back up, restore or copy pages with it; the widget summaries of pages are rejected, page ids and the widget ids of a page must be unique, and every new ad account, property or page a widget names must be connected to the organization (template slots pass). The whole template stays under 950 KB. Slots, platforms and the date range are designed in MB Suite's template editor; the publication status changes with dashboards.templates.publish. Dashboards linked to the template show the changes. Returns the updated template with its new version. Requires edit access to Dashboards.
Escopo
dashboards:write
Permissão
Editar no módulo
Tool do MCP
dashboards_templates_updateNa superfície completa; na compacta, mb_execute_operation com id: "dashboards.templates.update".
Custo declarado: até 1 leituras e 1 escritas por chamada (contam na cota diária).
Parâmetros
template_idstringrotaobrigatório
The template id (dashboards.templates.list).
titlestringcorpoopcional
New title.
descriptionstringcorpoopcional
New description.
subtitlestringcorpoopcional
New subtitle.
label_idsarray<string>corpoopcional
Template labels (ids from dashboards.labels.list with of: templates); replaces the list. An id that does not exist is label_unknown.
styleobjectcorpoopcional
Cover style.
default_data_sourcestring | nullcorpoopcional
The slot or platform widgets without a source use: a data_source_slots[].id, one of supported_platforms, or crm; null removes it. Filters and filter controls of the same call are checked against the new one.
filtersarray<object>corpoopcional
The global filters (replace the stored ones; [] removes them), up to 50, checked against the default data source's platform.
The filter controls the viewer gets (replace the stored ones; [] removes them), up to 20: a field id, or {field, …}; checked against the default data source's platform.
pagesarray<object>corpoopcional
All the pages as stored (the raw_pages of dashboards.templates.get with raw: true), up to 50: they replace the stored ones.
Sets the publication status of one of the organization's own templates: published (a workspace's published templates are offered to its accounts as INHERITED and to bulk deployment) or draft (status: draft; dashboards already created keep rendering). Idempotent: changed is false when it already had that status. Requires edit access to Dashboards.
Escopo
dashboards:write
Permissão
Editar no módulo
Tool do MCP
dashboards_templates_publishNa superfície completa; na compacta, mb_execute_operation com id: "dashboards.templates.publish".
Copies one of the organization's own templates (pages, widgets, slots, filters, style) 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 Dashboards.
Escopo
dashboards:write
Permissão
Editar no módulo
Tool do MCP
dashboards_templates_duplicateNa superfície completa; na compacta, mb_execute_operation com id: "dashboards.templates.duplicate".
Custo declarado: até 1 leituras e 1 escritas por chamada (contam na cota diária).
curl-X POST "https://api.mb-suite.com/v1/dashboards/templates/{template_id}/duplicate" \
-H"Authorization: Bearer $MB_API_KEY"
Testar com a sua API key de teste
Com uma API key de teste o pedido vai sempre para a sua organização de prática: dados de exemplo que você pode reiniciar.
curl-X POST "https://api.mb-suite.com/v1/dashboards/templates/{template_id}/duplicate" \
-H"Authorization: Bearer $MB_TEST_KEY"
POST/v1/dashboards/templates/clone
Copy a system template into the organization
dashboards.templates.clone
EscritaDesde 2026-11-01
Copies a published system template (source SYSTEM in dashboards.templates.list) into the organization's own templates as a draft titled title (default the system template's with the copy suffix in the caller's language, e.g. '<title> (Copia)'), placed after the organization's ordered templates, so it can be customized and published to its accounts. To just use a system template as it is, create a dashboard from it with dashboards.dashboards.create_from_template instead. Returns the new template id. Requires edit access to Dashboards.
Escopo
dashboards:write
Permissão
Editar no módulo
Tool do MCP
dashboards_templates_cloneNa superfície completa; na compacta, mb_execute_operation com id: "dashboards.templates.clone".
Custo declarado: até 1 leituras e 1 escritas por chamada (contam na cota diária).
Parâmetros
system_template_idstringcorpoobrigatório
The published system template (dashboards.templates.list with source SYSTEM).
titlestringcorpoopcional
Title of the copy; default the system template's with the copy suffix.
Deletes one of the organization's own templates. It goes to the 30-day trash. Dashboards created from it (in this organization and, if it was published by a workspace, in its accounts) stop rendering until it is restored: the dry run says how many of this organization's dashboards are linked. 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 Dashboards.
Instruções para agentes
Before confirming, tell the person how many dashboards depend on the template (the dry run says it).
Com uma API key, este DELETE roda direto: o registro fica 30 dias na lixeira e a resposta traz o seu trash_item_id. Com um token OAuth, e pelo MCP, pede dry_run → confirm_token.
Escopo
dashboards:writee «Permitir exclusões» (dashboards:delete no OAuth)
Permissão
Editar no módulo
Tool do MCP
dashboards_templates_deleteNa superfície completa; na compacta, mb_execute_operation com id: "dashboards.templates.delete".
Custo declarado: até 102 leituras e 2 escritas por chamada (contam na cota diária).
Parâmetros
template_idstringrotaobrigatório
The template id (dashboards.templates.list).
Resposta
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.