Lists the workspace's cross-account dashboards (dashboards whose widgets read every account of the workspace, or several sub-accounts of one workspace credential when is_multi_account), most recently updated first, paginated by cursor. An account (child organization) has none: the list comes back empty. Use dashboards.cross_account.get for the pages and widgets.
Scope
dashboards:read
Permission
View the module
MCP tool
dashboards_cross_account_listOn the full surface; on the compact one, mb_execute_operation with id: "dashboards.cross_account.list".
Declared cost: up to 202 reads and 0 writes per call (they count against the daily quota).
Parameters
limitintegerqueryoptional
How many cross-account dashboards 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.
Returns a cross-account dashboard of the workspace with its date range, filters and its pages with a summary of each widget (type, title, platform, metrics, dimensions, grid position). It does not return widget data. Not found if the id does not exist in this workspace.
Scope
dashboards:read
Permission
View the module
MCP tool
dashboards_cross_account_getOn the full surface; on the compact one, mb_execute_operation with id: "dashboards.cross_account.get".
Declared cost: up to 1 reads and 0 writes per call (they count against the daily quota).
Parameters
dashboard_idstringpathrequired
The cross-account dashboard id (dashboards.cross_account.list).
Response
idstring
Cross-account dashboard id.
titlestring
Title.
descriptionstring | null
Description.
is_multi_accountboolean
A widget adds up several accounts of one workspace credential.
label_idsarray<string>
Labels (dashboards.labels.list with of: cross_account).
Creates an empty cross-account dashboard in the workspace (one blank page) with a title, optional description and is_multi_account (widgets that add up several sub-accounts of one workspace credential). Its widgets are designed in MB Suite. Only a workspace (agency) organization can have them: an account gets workspace_only. Returns the new id. Requires edit access to Dashboards.
Scope
dashboards:write
Permission
Edit in the module
MCP tool
dashboards_cross_account_createOn the full surface; on the compact one, mb_execute_operation with id: "dashboards.cross_account.create".
Declared cost: up to 0 reads and 1 writes per call (they count against the daily quota).
Parameters
titlestringbodyrequired
Title.
descriptionstringbodyoptional
Description.
is_multi_accountbooleanbodyoptional
true: a widget adds up several accounts of one workspace credential.
Updates the title, description and/or labels (ids from dashboards.labels.list with of: cross_account; an unknown one is label_unknown) of a cross-account dashboard. Pages, widgets, date range and filters are edited in MB Suite. Returns the updated dashboard. Requires edit access to Dashboards.
Scope
dashboards:write
Permission
Edit in the module
MCP tool
dashboards_cross_account_updateOn the full surface; on the compact one, mb_execute_operation with id: "dashboards.cross_account.update".
Declared cost: up to 1 reads and 1 writes per call (they count against the daily quota).
Parameters
dashboard_idstringpathrequired
The cross-account dashboard id (dashboards.cross_account.list).
titlestringbodyoptional
New title.
descriptionstringbodyoptional
New description.
label_idsarray<string>bodyoptional
Labels (ids from dashboards.labels.list with of: cross_account); replaces the list. An unknown id is label_unknown.
Copies a cross-account dashboard (pages, widgets, date range, filters) into a new one titled '<title> (Copia)' (the suffix in the caller's language: (Copia), (Copy) or (Cópia)), not featured. Returns the new id. Requires edit access to Dashboards.
Scope
dashboards:write
Permission
Edit in the module
MCP tool
dashboards_cross_account_duplicateOn the full surface; on the compact one, mb_execute_operation with id: "dashboards.cross_account.duplicate".
Declared cost: up to 1 reads and 1 writes per call (they count against the daily quota).
Parameters
dashboard_idstringpathrequired
The cross-account dashboard id (dashboards.cross_account.list).
curl-X POST "https://api.mb-suite.com/v1/dashboards/cross-account/{dashboard_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/cross-account/{dashboard_id}/duplicate" \
-H"Authorization: Bearer $MB_TEST_KEY"
DELETE/v1/dashboards/cross-account/{dashboard_id}
Delete a cross-account dashboard
dashboards.cross_account.delete
IrreversibleSince 2026-11-01
Deletes a cross-account dashboard of the workspace. It goes to the 30-day trash. 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.
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_cross_account_deleteOn the full surface; on the compact one, mb_execute_operation with id: "dashboards.cross_account.delete".
Declared cost: up to 1 reads and 2 writes per call (they count against the daily quota).
Parameters
dashboard_idstringpathrequired
The cross-account dashboard id (dashboards.cross_account.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.