Skip to main content
Goals are per-owner targets (a metric + a deadline). See the Goals & OKRs capability for how the agent uses them. All endpoints filter by your owner_email.

GET — list goals

Optional appId and status (active | achieved | missed | archived) filters.
Each goal includes a computed pace object (authoritative — do not recompute client-side):

POST — create a goal

Returns { "data": { "goal": {...} } } with 201. A duplicate active goal returns 409.

PATCH — update a goal

Send only the fields you want to change:
Accepted keys: label, targetValue, baselineValue, currentValue, deadline, status. Setting currentValue is how you update pace for manual metrics (mrr, dau, ltv_cac, custom). Returns the updated { goal }, or 404 if not found.

DELETE — archive a goal

Archives (never hard-deletes) — progress history in cofounder_goal_progress is preserved.

Auto-updated metrics

downloads and revenue app-scoped goals update automatically from each run’s report (health.downloadsLast7d / health.revenueLast7d). When a goal crosses into off-track, a goal_offtrack signal fires once on the transition.