List approvals
GET
What hires asked to be approved, pending first.
sessioncookie
better-auth.session_token<token>Set by POST /api/auth/sign-in/email.
ws*stringThe workspace id (from GET /api/me).
status?stringValue in
"pending""approved""declined""expired"A list of approvals.
curl -X GET 'https://app.useroster.work/api/workspaces/string/approvals'Example Response
Empty
Change a goal PATCH
Only the fields given change. `status` "done" needs `evidence` (given here or already on the goal).
Approve or decline POST
For the person holding the approver position, and the workspace's owners and admins (403 for anyone else; 409 once it's no longer pending, so two decisions never both land). An approved hire or retire is carried out: its `result` says what happened. An approved held tool call (`action` set) is made exactly as recorded, once, in the hire's next step in its thread; `execution` goes `waiting` → `running` → `done` or `failed`, and `result` holds what the tool said.