Recurring is in Beta. Find it in the admin dashboard under Recurring (the old
/subscriptions URL redirects there), plus the REST API and MCP. The shapes below are stable, but expect the surface to keep growing.What a series is
A series is a recurring charge pattern. Each one carries:- Cadence —
weekly,biweekly,monthly,quarterly,semiannual, orannual(plusirregular/unknownfor charges that don’t snap cleanly). - Expected amount and its
iso_currency_code, with an amount tolerance — so a 11.99 stays the same series. Never sum expected amounts across currencies. - Next expected date — when the next charge is due.
- Status —
candidate,active,paused, orcancelled. - Occurrence count and the detection signals behind it.
Automatic detection
You don’t have to hand-build your subscription list. On each sync, Breadbox’s detector looks for charges that repeat from the same merchant at a regular cadence and proposes them as candidate series. It normalizes merchant names to a stable signature and ignores generic descriptors — transfers, ACH, Venmo/Zelle, bill-pay, refunds, and the like — so one-off payments don’t masquerade as subscriptions. Candidates wait for a verdict. From the Recurring page you can:- Confirm — yes, this is a subscription. The series becomes
active. - Reject (shown as Not recurring) — the rejection is sticky: the detector won’t re-propose it at the same amount band.
- Pause or Cancel — for subscriptions you’ve stopped or are putting on hold.
A person’s verdict outranks an agent’s. If you confirm a series, a later agent run can’t quietly reject it.
Tag a whole subscription at once
A series can carry its own tags, and every linked charge inherits them automatically — including charges that join later. Tag a seriesstreaming once and all of its past and future transactions pick up that tag, no per-row tagging required.
Removing a tag from the series strips only the copies it added; a tag you put on an individual charge by hand survives.
Auto-join future charges with a rule
To make every future charge from a merchant join a series on sync, use theassign_series rule action:
create_if_missing mints the series the first time a matching charge appears; after that, every future charge joins it. Provide series_short_id instead to target a series that already exists.
Applying the subscription rule by itself back-fills your existing charges into the series, not just future ones (see applying a rule retroactively). The bulk “apply all rules” pass doesn’t link series yet, so apply this rule on its own. You can also link a charge by hand or with the
assign_series MCP tool.Working with series from an agent
The same surface is available over MCP, which is how a scheduled reviewer agent can keep your subscription list tidy:list_series(optionallystatus=candidate) to find series awaiting a verdict, thenreview_seriesto confirm, reject, pause, or cancel.get_seriesto inspect one series and the evidence behind it.assign_seriesto create a series detection missed, or back-link charges to an existing one.add_series_tag/remove_series_tagto tag a subscription and its members.
Auditing what you spend
Once your subscriptions are series:- See the portfolio. The Recurring page lists every active series with its cadence and expected amount.
- Total the outflow. Sum the expected amounts of your active monthly series (keep each
iso_currency_codeseparate — don’t mix currencies). - Spot creep. A series tracks its last amount against the expected one, so a plan that quietly raised its price stands out.
Deleting a series
Removing a series is non-destructive — its transactions stay exactly where they are and simply lose the series link. Your history is never deleted.Related reading
- Rules — the
assign_seriesaction and the full rule DSL. - MCP tools — the series tools an agent can call.
- On-demand analysis — ask Claude “which of my subscriptions are underused?” once they’re tracked.