Run custom report
run_report[Reports] Run a saved custom report and return each block's rows (aggregated numbers, at most 500 rows per block). Optional filters JSON overrides the period / positions / interviews for this run only. Report numbers are decision-support material for a human reviewer.
Runs every block of a saved report and returns its rows. Filters start from the report's defaults, then your own saved filters, then filters if you pass it. Each block runs on its own: a block that fails returns ok=false with an error while the others still return data. Numbers are aggregated; no block returns more than 500 rows.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Report id (from list_reports). | |
| draft | No | Run the unpublished draft instead (only if you can edit the report). | false |
| filters | No | Optional JSON ReportFilters to apply on top, e.g. {"period":{"preset":"last_month"}}. | |
| block_id | No | Run only this block. | |
| merchant_id | No | Optional merchant to scope to. Admins and sub-merchant operators only; other callers always use their token's merchant. | |
| conversation_id | No | Pass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| blocks | Yes | ||
| filters | Yes | The filters the blocks ran with (report defaults, then your saved filters, then the ones you passed). | |
| version | No | ||
| report_id | No | ||
| _mcp_instructions | No | Server-issued metadata for this conversation. |