Menú

Referencia de la API · Dashboards

Plantillas

dashboards · templates · 8 operaciones

GET/v1/dashboards/templates

List dashboard templates

dashboards.templates.list

LecturaIdempotenteDesde 2026-11-01

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.

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

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

Parámetros

limitintegerqueryopcional

How many templates per page (default 50, at most 200).

Por defecto: 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 · Por defecto: "all"

Respuesta

dataarray<object>
has_moreboolean
next_cursorstring

Errores

Ejemplo

curl "https://api.mb-suite.com/v1/dashboards/templates" \
  -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/dashboards/templates" \
  -H "Authorization: Bearer $MB_TEST_KEY"
GET/v1/dashboards/templates/{template_id}

Get one dashboard template

dashboards.templates.get

LecturaIdempotenteDesde 2026-11-01

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.

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

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

Parámetros

template_idstringrutarequerido

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.

Respuesta

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.

pagesarray<object>

Pages with a summary of each widget.

date_rangeobject | null

The default period.

compare_date_rangeobject | null

The comparison period, if any.

filtersarray<object>

Global filters.

filter_controlsarray<any>

Filter controls shown to the viewer.

styleobject | null

Cover style.

created_by_namestring | null

Their name («MB Suite» for the system).

raw_pagesarray<object>

Errores

Ejemplo

curl "https://api.mb-suite.com/v1/dashboards/templates/{template_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/dashboards/templates/{template_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY"
POST/v1/dashboards/templates

Create a dashboard template

dashboards.templates.create

EscrituraDesde 2026-11-01

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.

Alcance
dashboards:write
Permiso
Editar en el módulo
Tool del MCP
dashboards_templates_createEn la superficie completa; en la compacta, mb_execute_operation con id: "dashboards.templates.create".

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

Parámetros

titlestringcuerporequerido

Title.

descriptionstringcuerpoopcional

Description.

supported_platformsarray<string>cuerpoopcional

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_sourcestringcuerpoopcional

The slot or platform widgets without a source use (the screen sends the main platform).

Respuesta

template_idstring

The new template id.

Errores

Ejemplo

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

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/dashboards/templates" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "title": "TITLE"
}'
PATCH/v1/dashboards/templates/{template_id}

Update a dashboard template

dashboards.templates.update

EscrituraDesde 2026-11-01

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.

Alcance
dashboards:write
Permiso
Editar en el módulo
Tool del MCP
dashboards_templates_updateEn la superficie completa; en la compacta, mb_execute_operation con id: "dashboards.templates.update".

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

Parámetros

template_idstringrutarequerido

The template id (dashboards.templates.list).

titlestringcuerpoopcional

New title.

descriptionstringcuerpoopcional

New description.

subtitlestringcuerpoopcional

New subtitle.

label_idsarray<string>cuerpoopcional

Template labels (ids from dashboards.labels.list with of: templates); replaces the list. An id that does not exist is label_unknown.

styleobjectcuerpoopcional

Cover style.

default_data_sourcestring | nullcuerpoopcional

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>cuerpoopcional

The global filters (replace the stored ones; [] removes them), up to 50, checked against the default data source's platform.

filter_controlsarray<string | object>cuerpoopcional

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>cuerpoopcional

All the pages as stored (the raw_pages of dashboards.templates.get with raw: true), up to 50: they replace the stored ones.

Respuesta

templateobject

The template as saved, with its new version.

Errores

Ejemplo

curl -X PATCH "https://api.mb-suite.com/v1/dashboards/templates/{template_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 PATCH "https://api.mb-suite.com/v1/dashboards/templates/{template_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY"
POST/v1/dashboards/templates/{template_id}/publish

Publish a template or move it back to draft

dashboards.templates.publish

EscrituraIdempotenteDesde 2026-11-01

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.

Alcance
dashboards:write
Permiso
Editar en el módulo
Tool del MCP
dashboards_templates_publishEn la superficie completa; en la compacta, mb_execute_operation con id: "dashboards.templates.publish".
Eventos que puede emitir
dashboards.template.published

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

Parámetros

template_idstringrutarequerido

The template id (dashboards.templates.list).

statusenumcuerpoopcional

published (its accounts see and deploy it) or draft. Default published.

Valores: published, draft · Por defecto: "published"

Respuesta

template_idstring

The template.

statusenum

Its status now.

Valores: draft, published

changedboolean

false when it already had that status.

Errores

Ejemplo

curl -X POST "https://api.mb-suite.com/v1/dashboards/templates/{template_id}/publish" \
  -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 POST "https://api.mb-suite.com/v1/dashboards/templates/{template_id}/publish" \
  -H "Authorization: Bearer $MB_TEST_KEY"
POST/v1/dashboards/templates/{template_id}/duplicate

Duplicate a dashboard template

dashboards.templates.duplicate

EscrituraDesde 2026-11-01

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.

Alcance
dashboards:write
Permiso
Editar en el módulo
Tool del MCP
dashboards_templates_duplicateEn la superficie completa; en la compacta, mb_execute_operation con id: "dashboards.templates.duplicate".

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

Parámetros

template_idstringrutarequerido

The template id (dashboards.templates.list).

Respuesta

template_idstring

The copy's id.

Errores

Ejemplo

curl -X POST "https://api.mb-suite.com/v1/dashboards/templates/{template_id}/duplicate" \
  -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 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

EscrituraDesde 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.

Alcance
dashboards:write
Permiso
Editar en el módulo
Tool del MCP
dashboards_templates_cloneEn la superficie completa; en la compacta, mb_execute_operation con id: "dashboards.templates.clone".

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

Parámetros

system_template_idstringcuerporequerido

The published system template (dashboards.templates.list with source SYSTEM).

titlestringcuerpoopcional

Title of the copy; default the system template's with the copy suffix.

Respuesta

template_idstring

The copy's id.

Errores

Ejemplo

curl -X POST "https://api.mb-suite.com/v1/dashboards/templates/clone" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "system_template_id": "SYSTEM_TEMPLATE_ID"
}'

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/dashboards/templates/clone" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "system_template_id": "SYSTEM_TEMPLATE_ID"
}'
DELETE/v1/dashboards/templates/{template_id}

Delete a dashboard template

dashboards.templates.delete

IrreversibleDesde 2026-11-01

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.

Instrucciones para agentes

Before confirming, tell the person how many dashboards depend on the template (the dry run says it).

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
dashboards:write y «Permitir eliminar» (dashboards:delete en OAuth)
Permiso
Editar en el módulo
Tool del MCP
dashboards_templates_deleteEn la superficie completa; en la compacta, mb_execute_operation con id: "dashboards.templates.delete".

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

Parámetros

template_idstringrutarequerido

The template id (dashboards.templates.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/dashboards/templates/{template_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/dashboards/templates/{template_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY"