Menu

API reference · Reports

Page templates

reports · section_templates · 4 operations

GET/v1/reports/section-templates

List saved report pages

reports.section_templates.list

ReadIdempotentSince 2026-11-01

Lists the report pages saved by the organization to reuse in other templates (section templates), newest first, paginated by cursor: name, description, page title and how many blocks it has. Fetch the blocks with reports.section_templates.get. Requires view access to Reports.

Scope
reports:read
Permission
View the module
MCP tool
reports_section_templates_listOn the full surface; on the compact one, mb_execute_operation with id: "reports.section_templates.list".

Declared cost: up to 202 reads and 0 writes per call (they count against the daily quota).

Parameters

limitintegerqueryoptional

How many section templates 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.

Response

dataarray<object>
has_moreboolean
next_cursorstring

Errors

Example

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

Get a saved report page

reports.section_templates.get

ReadIdempotentSince 2026-11-01

Returns one saved report page (section template) with its title and all its blocks, ready to add to a template's sections. Not found if it does not exist in the organization. Requires view access to Reports.

Scope
reports:read
Permission
View the module
MCP tool
reports_section_templates_getOn the full surface; on the compact one, mb_execute_operation with id: "reports.section_templates.get".

Declared cost: up to 1 reads and 0 writes per call (they count against the daily quota).

Parameters

section_template_idstringpathrequired

The section template id (reports.section_templates.list).

Response

idstring

Section template id.

namestring

Name.

sectionobject

The saved page with its blocks.

descriptionstring | null

Description.

created_atnumber | null

Created (epoch ms).

updated_atnumber | null

Last edited (epoch ms).

created_bystring | null

Uid of who saved it.

Errors

Example

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

Save a report page for reuse

reports.section_templates.create

WriteSince 2026-11-01

Saves a report page (a section with its blocks, as it is in a template or a report) with a name and an optional description, so it can be added to other templates. Blocks that read a platform must point to a slot or to a data source connected to the organization. Returns its id. Requires edit access to Reports.

Scope
reports:write
Permission
Edit in the module
MCP tool
reports_section_templates_createOn the full surface; on the compact one, mb_execute_operation with id: "reports.section_templates.create".

Declared cost: up to 1 reads and 1 writes per call (they count against the daily quota).

Parameters

namestringbodyrequired

Name of the saved page.

sectionobjectbodyrequired

The page as it is in a template or report (title, position and blocks; new block types, metrics and presets are checked).

descriptionstringbodyoptional

Description.

Response

section_template_idstring

Errors

Example

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

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/reports/section-templates" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "name": "NAME",
  "section": {}
}'
DELETE/v1/reports/section-templates/{section_template_id}

Delete a saved report page

reports.section_templates.delete

IrreversibleSince 2026-11-01

Deletes a saved report page; it stays 30 days in the trash. Templates that already used it keep their copy of the page. Requires edit access to Reports. Outside the screen it needs a dry run and a confirm_token, or a key with deletion enabled.

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
reports:write and “Allow deletions” (reports:delete in OAuth)
Permission
Edit in the module
MCP tool
reports_section_templates_deleteOn the full surface; on the compact one, mb_execute_operation with id: "reports.section_templates.delete".

Declared cost: up to 1 reads and 2 writes per call (they count against the daily quota).

Parameters

section_template_idstringpathrequired

The section template id (reports.section_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.

Errors

Example

curl -X DELETE "https://api.mb-suite.com/v1/reports/section-templates/{section_template_id}" \
  -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 DELETE "https://api.mb-suite.com/v1/reports/section-templates/{section_template_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY"