get /v1/budgets/{budget_id}/aims
Every goal on this budget, in priority order, with where each stands
scope budget:read · plan feature goals · listAims
Parameters
budget_id path · string · required
month query · string
Returns · 200
{ aims[] }. Each aim carries what was declared (kind, label, want, target_cents, target_date or target_year, monthly_cents, growth_rate percent per year, the paired loan_id/account_id for a debt) and what is computed on read: have_cents and target_cents (the pile for retirement, the envelope for a fund, what has been paid down for a debt), progress_ratio 0..1, standing (ahead | on_track | at_risk | reached | unknown), recommended_monthly_cents (what would reach the target by its date at growth_rate), reached_in_months with _low/_high at 20% either side of the rate, reached_month. A fund's date counts this month and the target's month, YNAB's way: its projection starts from what the envelope held before this month's assignment and months_left includes both ends. The first open retirement goal with a target is judged by the outlook engine instead, with the same three runs, target and verdict as the projection's retirement.covered and the compare row's covered, so they never disagree: have_cents is the pile now, standing is that verdict, reached_month/_low/_high are when each run's pile reaches the target, growth_rate_low/_high are the outlook's rates, and recommended_monthly_cents is the monthly that gets the expected run there by January of target_year. Also this month's assigned_cents/needed_cents/this_month_shortfall_cents on the contribution envelope, and for a debt the debt block (balance, rate, minimum, payoff_month, interest_cents, credit_clears_month for a consumer proposal). A buffer goal has no envelope: it stands on the cashflow line, and its buffer block is the same as the cashflow read's buffer (without the band): amount_cents is target_cents, have_cents is how far the lowest point ahead (over the next ninety days, with projected spending when any is chosen) stays above $0, standing is reached once that is the whole buffer, on_track while above $0, at_risk at or below $0, unknown with no repeating bills to size it from; covers_days is how many days of bills today's cash (above $0) pays for. Every buffer figure is measured from $0, never from Alarm. Nothing here schedules the contribution. ?month= reads a different month's envelope figures.
Example
Errors · besides 401, 429, 500
- 402
plan_limit: The tenant's plan does not allow this. Readentitlementson GET /v1/me to see what the plan unlocks and allows, report the limit to the human, and let them choose to upgrade at https://mintro.money/pricing; do not 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.