Lists the organization's saved Explorer views (module analytics) and CRM reports (module crm, only if the caller can see the CRM), in their manual order, paginated by cursor. Each view has its name, layout (stack or grid), date range and its tables, KPIs and charts with platform, metrics and dimensions. Filter with module. It does not return data: the numbers are read live in MB Suite.
Scope
dashboards:read
Permission
View the module
MCP tool
dashboards_explorer_views_listOn the full surface; on the compact one, mb_execute_operation with id: "dashboards.explorer_views.list".
Declared cost: up to 503 reads and 0 writes per call (they count against the daily quota).
Parameters
limitintegerqueryoptional
How many views per page (default 50, at most 200).
Default: 50
cursorstringqueryoptional
The next_cursor of the previous page, to get the next one; omit it for the first page.
moduleenumqueryoptional
analytics (the Explorer's views), crm (the CRM reports) or all (default).
Returns a saved Explorer view or CRM report with its name, module, layout, date range and its tables, KPIs and charts. A CRM report requires access to the CRM. Not found if the id does not exist in this organization.
Scope
dashboards:read
Permission
View the module
MCP tool
dashboards_explorer_views_getOn the full surface; on the compact one, mb_execute_operation with id: "dashboards.explorer_views.get".
Declared cost: up to 3 reads and 0 writes per call (they count against the daily quota).
Saves a new Explorer view with a name, date range (default last 30 days), layout and its tables. With module crm it is a CRM report (shown in CRM → Performance → Reports) and requires edit access to the CRM as well. Each item of tables is a table, KPI or chart: type single (one platform or data source) or multi (several platforms), item_type table|kpi|graph, platform, data_source_id, platforms, dimensions (ids, or {id, level} to nest), metrics (metric ids of the platform, or custom:<id> of dashboards.custom_metrics.list), filters ({id, field_id, operator, value}), sorts, column_widths and custom_labels (keyed by metric or dimension id), and for a grid layout x, y, w, h. New platforms, metrics, dimensions and filter operators are checked against the platform's registry (unknown_platform, unknown_metric, unknown_dimension, invalid_table_filter, with the valid ones in details); ids the view already had are kept. A new preset_key must be one of the presets (preset_unknown). Returns the new view id. Requires edit access to Dashboards.
Scope
dashboards:write
Permission
Edit in the module
MCP tool
dashboards_explorer_views_createOn the full surface; on the compact one, mb_execute_operation with id: "dashboards.explorer_views.create".
Declared cost: up to 2 reads and 1 writes per call (they count against the daily quota).
Parameters
namestringbodyrequired
View name.
module"crm"bodyoptional
crm: a CRM report (needs CRM access too); omit it for an Explorer view.
layoutenumbodyoptional
stack (one under the other) or grid.
Values: stack, grid
date_rangeobjectbodyoptional
The view's period; default the last 30 days (type preset, preset_key last_30_days).
Updates the name, date range, layout and/or the full list of tables of a saved Explorer view or CRM report (the module does not change; a CRM report requires edit access to the CRM as well). Each item of tables is a table, KPI or chart: type single (one platform or data source) or multi (several platforms), item_type table|kpi|graph, platform, data_source_id, platforms, dimensions (ids, or {id, level} to nest), metrics (metric ids of the platform, or custom:<id> of dashboards.custom_metrics.list), filters ({id, field_id, operator, value}), sorts, column_widths and custom_labels (keyed by metric or dimension id), and for a grid layout x, y, w, h. New platforms, metrics, dimensions and filter operators are checked against the platform's registry (unknown_platform, unknown_metric, unknown_dimension, invalid_table_filter, with the valid ones in details); ids the view already had are kept. A new preset_key must be one of the presets (preset_unknown). Returns the updated view. Requires edit access to Dashboards.
Scope
dashboards:write
Permission
Edit in the module
MCP tool
dashboards_explorer_views_updateOn the full surface; on the compact one, mb_execute_operation with id: "dashboards.explorer_views.update".
Declared cost: up to 3 reads and 1 writes per call (they count against the daily quota).
Parameters
view_idstringpathrequired
The view id (its list operation).
namestringbodyoptional
New name.
module"crm"bodyoptional
Only to say it is a CRM report; a view's module does not change.
Copies a saved Explorer view or CRM report into a new one titled '<name> (Copia)' (the suffix in the caller's language: (Copia), (Copy) or (Cópia)) with the same module, layout, date range and tables. Returns the new view id. Requires edit access to Dashboards (and to the CRM for a CRM report).
Scope
dashboards:write
Permission
Edit in the module
MCP tool
dashboards_explorer_views_duplicateOn the full surface; on the compact one, mb_execute_operation with id: "dashboards.explorer_views.duplicate".
Declared cost: up to 3 reads and 1 writes per call (they count against the daily quota).
curl-X POST "https://api.mb-suite.com/v1/dashboards/explorer-views/{view_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/dashboards/explorer-views/{view_id}/duplicate" \
-H"Authorization: Bearer $MB_TEST_KEY"
POST/v1/dashboards/explorer-views/reorder
Reorder explorer views
dashboards.explorer_views.reorder
WriteIdempotentSince 2026-11-01
Sets the manual order of the Explorer views (or of the CRM reports): pass the ids of ONE list, Explorer views or CRM reports, in the new order; mixing both lists is mixed_view_lists. Every id must exist. Requires edit access to Dashboards (and to the CRM when CRM reports are included).
Scope
dashboards:write
Permission
Edit in the module
MCP tool
dashboards_explorer_views_reorderOn the full surface; on the compact one, mb_execute_operation with id: "dashboards.explorer_views.reorder".
Declared cost: up to 202 reads and 200 writes per call (they count against the daily quota).
Parameters
view_idsarray<string>bodyrequired
The ids of ONE list (Explorer views or CRM reports, not both) in the new order.
Response
countnumber
How many views were ordered.
changednumber
How many of them moved (only those are written), like dashboards.dashboards.reorder.
Deletes a saved Explorer view or CRM report. It goes to the 30-day trash. Accounts that inherited it stop seeing it until it is restored: the dry run names the view and says how many of the workspace's accounts inherit 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 Dashboards (and to the CRM for a CRM report).
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
dashboards:writeand “Allow deletions” (dashboards:delete in OAuth)
Permission
Edit in the module
MCP tool
dashboards_explorer_views_deleteOn the full surface; on the compact one, mb_execute_operation with id: "dashboards.explorer_views.delete".
Declared cost: up to 203 reads and 2 writes per call (they count against the daily quota).
Parameters
view_idstringpathrequired
The view id (its list operation).
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.