Organizations & team
Organizations you belong to, with your role
Organizations you belong to, with your role
Create an organization
Create an organization; you are its owner
Get organization
Members, and for owner/admin the billing email, open invitations and `seats` ({ used, limit }: members plus open invitations against the plan's `team_members`; `limit` is null without a cap)
Rename, set the billing email
Owner/admin: rename, set the billing email. A suspended client workspace answers 423 `account_suspended` to this and every other team or role change (invitations, members, transfer, roles) whichever account the request acts for; leaving and deleting still work
Delete organization
Owner: delete with everything in it. Refused (422) while a subscription is live, credit is left, runs are active, or (an agency) client workspaces remain.
Invite by email
Owner/admin: invite by email (sends the link; seats = members + open invitations, per plan `team_members`)
Cancel an invitation
Owner/admin: cancel an invitation
Change a member's role
Owner/admin: change a member's role (not the owner's): `admin` (owner only), `member` or a custom role `custom:⟨id⟩`
Remove a member
Owner/admin: remove a member; anyone but the owner: leave (with your own id). Their tokens for the organization are revoked.
Transfer organization
Owner: make another member the owner; you become admin
List roles (organizations)
Roles: the presets owner/admin/member (`is_system`, fixed) and custom roles, with `permissions` and `members_count`. Any member.
Create a custom role
Owner/admin: create a custom role (at most 50)
Rename a custom role or change its permissions
Owner/admin: rename a custom role or change its permissions (applies at once, organization tokens included)
Delete a custom role
Owner/admin: delete a custom role; its members fall back to the member preset
Permission catalog
Permission catalog (`permissions`: key, label, description) and the presets' permissions (`presets`). Members of an organization without a permission get 403 (`permission` in the body) on the routes it guards.
Activity log of the acting account
Activity log of the acting account: every write request on /api/v3 (run tokens aside), kept a platform setting. Owner/admin see everyone's, other members their own (`meta.scope`).
Open invitations sent to your email
Open invitations sent to your email. An invitation whose sender has left or no longer manages the team (team.manage) is not listed, takes no seat and cannot be accepted
Create lookup (invitations)
Public, 20 per minute per IP. What the emailed invitation link is for, by `{ token }`: `organization.name`, `invited_by`, `role`, `custom_role.name`, `expires_at`. Never returns the invited email; an unknown, mistyped or expired token all answer the same 404.
Join the organization
Join the organization. `{invitation}` is the id, or `token` with `{ token }` from the emailed link. Only for the invited email.
Decline invitation
Decline (same addressing as accept). Works even when its sender no longer manages the team