Who's signed in
Your account and the workspaces you belong to, with your role in each.
sessionbetter-auth.session_token<token>Set by POST /api/auth/sign-in/email.
The signed-in person and their workspaces.
application/jsoncurl -X GET 'https://app.useroster.work/api/me'{ "user": { "id": "u_123", "name": "Dana Park", "email": "dana@acme.example", "role": "user" }, "workspaces": [ { "id": "dc8754cb-…", "name": "Acme", "slug": "acme", "role": "owner" } ], "canSendMail": true}Answer a confirm card POST
`confirm` runs exactly the change the card holds, with your rights; `cancel` drops it. A card is answered once (409 after). Answers as the same event stream as asking.
What Roster can connect to GET
Every chat app and tool, with the fields a connection needs (`fields`) and the fields each hire has on it (`hireFields`). `secret` fields are sealed and never sent back. Tools also say how they work (`kind`: native, mcp or http), whether they work as they are or need setting up first (`status`, with `setup` steps), their `category`, how they sign in (`auth`, `oauth`), and whether their tools are found by testing the connection (`discovers`). Where a tool has more than one entry (a quick one-click one next to the full one), `related` lists the others, each with `id` and `when` (one sentence on when to pick it instead).