get /v1/budgets/{budget_id}/report
Spending and funding across a window of months
scope budget:read · getReport
Parameters
budget_id path · string · required
from query · string
to query · string
include_closed query · string
Returns · 200
{ from, to, total_income_cents, total_assigned_cents, total_activity_cents, months: [{ month, income_cents, assigned_cents, activity_cents }], envelopes: [{ envelope_id, name, status, total_assigned_cents, total_activity_cents, months: [{ month, assigned_cents, activity_cents }] }] }. Answers "where did it go" and "is this month unusual" in one call. Activity is signed like entries, so spending is NEGATIVE. As in YNAB, an account starting balance is not income and a card payment envelope is not spending (the purchases it paid for were counted when they were made); neither appears. Every month in the window appears even when nothing happened, so a gap means a quiet month rather than a missing one. Defaults to the last six months including the current one; from/to take YYYY-MM (or a full date, which is read as its month) and the window is capped at 24 months; past that, export the budget and work on the whole thing. Drawn entirely from the same cached monthly totals the month view reads: Mintro stores no history beyond them. Closed envelopes are left out, rows and totals alike, unless include_closed=true, because a retired pot that money was once filed INTO would otherwise net against what was spent.
Example
Errors · besides 401, 429, 500
- 400
validation_failed: The request body or query is malformed. The message names the offending field; fix it and retry. - 403
forbidden: The key is valid but lacks the scope this call needs. Ask the human to mint a key with the scope named in the message.