Catch up on the events ledger: the cold-start brief, or a delta since a cursor
Same contract as MCP's catch_up (catchUpQuerySchema in lib/schemas/events.ts validates both). Without cursor: the brief — the NON-ARCHIVED boards you can read (each with its id) with their lists (with their ids) and card counts, a tail of recent activity (recent is a taste of the ledger, not a page — no hasMore — and, unlike the inventory, it does include archived boards), per workspace the care counts stale, inventory and attention (BriefWorkspace says what each counts), and a fresh cursor. With cursor: { events, cursor, hasMore, resynced? }, only what happened since. Activity on boards you cannot read is filtered out after the scan, so a page may carry fewer events than limit — even none — while hasMore is true: keep calling with the returned cursor until hasMore is false. Keep the cursor verbatim between sessions, like a cardKey; never parse it. limit (1-100, default 50) is ignored without a cursor and split evenly across the workspaces in scope (floor, minimum one each — with more workspaces than limit, a page can carry one event per workspace and exceed it). A position retention has pruned past is restarted from the oldest event that workspace still has and reported in resynced (the delta's optional array of slugs) — not an error, and the other workspaces' deltas in the same response are unaffected. Only a cursor that is damaged or names a position this ledger never issued answers 410 STALE_CURSOR: call again without one to restart from the brief.
Request
- Base URL: https://tre-app.com
- URL: https://tre-app.com/api/catch-up
- Auth: HTTP bearer
Query parameters
Workspace slug. Omit to span every workspace visible to the caller; a workspace-bound token sees only its audience.
The cursor a previous call returned, 1-2048 characters. OMIT the parameter entirely to get the brief instead of a delta: sending it empty (?cursor=) is a 400, not a brief.
Maximum events in a delta page (1-100, default 50). Ignored without a cursor. Split evenly across the workspaces in scope (floor, minimum one each), so a caller in more workspaces than limit gets one event per workspace and can exceed it.
Response
Success
Changes
No recorded changes to this operation across all 1 revision of this API.