Skip to main content

Reports and Routines in the API and MCP

For agents and integrations

Finished runs are readable from outside Rize

Every report run and routine run is available to the Rize MCP server and the GraphQL API, so another agent can pull last week's team review, read a morning brief, compare it against a prior period, or fold it into something else you are building.

Four MCP tools: list_report_runs, get_report_run, list_routine_runs, and get_routine_run
GraphQL queries expose report runs and routine runs
Runs carry their period, status, source object, and generated output

From an MCP client

Once the Rize MCP server is connected, four tools cover finished AI output:

ToolWhat it does
list_report_runsLists runs for your reports, newest first. Filter by report_id or status (pending, running, ready, failed), and page with cursor and limit (default 25, max 100).
get_report_runReturns a single run by id, including the parent report's metadata and every AI analysis with its summary and insights.
list_routine_runsLists routine runs for your account, newest first. Filter by routine_id or status, and page with cursor and limit.
get_routine_runReturns a single routine run by id, including the parent routine metadata and the briefs it produced.

See the full tool reference for parameters.

Prompts that work:

  • "Pull my last weekly team review and list every recommendation it made."
  • "Compare the last three monthly reviews and tell me which trend held."
  • "Find any report run that failed this month."
  • "Read my latest start-of-day brief and turn it into a 5-bullet plan."
Same permissions as the app

Both tools resolve against your own account. A run you cannot open in Rize is not returned to an MCP client either.

From the GraphQL API

The public API at https://api.rize.io/api/v1/graphql exposes reportRuns, reportRun, routineRuns, and routineRun. Authenticate with an API key from Settings > API as described in accessing the GraphQL API.

query RecentRuns {
reportRuns(status: "ready", first: 5) {
nodes {
publicId
status
startTime
endTime
report {
name
scope
outputFormat
cadence
}
analyses {
status
summary
bodyMd
insights
}
}
}
}

Filter to one report with reportId, and page with the standard connection arguments (see pagination).

What a run returns

FieldNotes
publicIdThe run's stable handle, and what its hosted URL is built from
statuspending, running, ready, or failed
startTime / endTimeThe period the run covers, fixed when the run was created
structuredSectionsSection data for Template runs, computed from live data at read time
sectionsGeneratedAtWhen those sections were last computed
analysesAI output: status, summary, bodyMd, and insights
reportThe parent report's name, scope, cadence, outputFormat, prompt, and schedule fields
errorMessagePopulated on failed runs

Fetch a single report run with reportRun(id: "...").

Fetch routine runs the same way:

query RecentRoutineRuns {
routineRuns(status: "ready", first: 5) {
nodes {
publicId
status
startTime
endTime
routine {
name
templateKey
}
briefs {
title
bodyMd
}
}
}
}

What this is good for

  • Chaining agents. A scheduled report does the analysis on Rize's side; your agent reads the finished run instead of re-querying raw time entries.
  • Reading routine briefs. A morning or end-of-day routine can become the input to another assistant without repeating the same prompt.
  • Feeding other systems. Push a weekly summary into a client update, a status doc, or a channel that does not have a Rize integration.
  • Longitudinal questions. Runs accumulate, so "what changed over the last six months" is a read across runs rather than a fresh analysis of a half-year of entries.