Connect a tool in one click
For catalog entries with oneClick: true: makes the connection (status: "pending") and answers the tool's page to approve it; afterwards the tool sends people back to returnTo (a path in the app), connected. Cancelling there removes the pending connection. With connectionId, reconnects that connection instead.
sessionbetter-auth.session_token<token>Set by POST /api/auth/sign-in/email.
ws*stringThe workspace id (from GET /api/me).
type*stringThe tool, e.g. linear.
application/json- body
returnTo?stringconnectionId?string{ url }: send the person there.
application/jsoncurl -X POST 'https://app.useroster.work/api/workspaces/string/connect/string' \ -H 'Content-Type: application/json' \ -d '{}'{ "url": "https://mcp.example.com/authorize?client_id=…"}Open a connect link GET
What a connect link is for: the workspace, the tool, the connection to reconnect, why it was asked for, and whether you can connect tools there (owners and admins). 410 when it has expired.
Connect a tool that hands over its own key POST
For catalog entries with `install` (WooCommerce): `values` holds the fields it names (the store's address). Makes the connection (`status: "pending"`) and answers the tool's own approve page. Once approved, the tool sends Roster a fresh key, which is checked and kept sealed, and people come back to `returnTo` (a path in the app) with `oauth=connected`; a denial, or a key that never arrives, removes the pending connection. With `connectionId`, reconnects that connection instead. Owners and admins only.