Team, members & invitations
Every workspace has members with a role, and a workspace's seats are shared across a subscription. Manage all of this from the dashboard at Team — there's no separate API for it; it's part of the regular dashboard session.
Roles
Three roles, ranked owner > admin > member:
| Param | Type | Notes |
|---|---|---|
| owner | role | Full control. Exactly one per workspace. Can’t be invited into — it only moves via ownership transfer. |
| admin | role | Can invite, change roles and remove members, but can’t touch the owner or grant a role ranked above their own. |
| member | role | Can view the team list and leave the workspace. Can’t invite or manage other members. |
Seats
A seat is used by every active member and every pending invitation — seats are pooled across all workspaces under one subscription, not counted per workspace. Your plan sets the seat limit (unlimited on some plans); see /documentation/billing for plan limits. Removing a member, someone leaving, or revoking/expiring an invite frees its seat automatically — there's no separate step to "release" a seat.
Sending a new invitation is blocked once the subscription is at its seat limit, and inviting someone who's already a member is blocked too.
Invitation lifecycle
An admin invites by email and picks a role (admin or member — owner isn't an invitable role). Re-inviting an email that already has a pending invite just refreshes that same invite rather than creating a second one.
| Param | Type | Notes |
|---|---|---|
| Create | admin | Checked against the seat limit and existing membership at send time. Fails if either check doesn’t pass. |
| Resend | admin | Issues a fresh invite link and resets its expiry. |
| Revoke | admin | Cancels the invite and immediately frees its seat. |
| Accept | invitee | Grants membership. Re-checks expiry and seats at this moment too, since they can drift after the invite was sent. |
Invitations expire after a fixed window. An expired invite isn't deleted automatically — it just stops being acceptable until an admin resends it, which issues a new link and expiry.
If an invitation email fails to deliver, the invite itself is still created — the Team page shows it as undelivered with a link admins can share by hand, and a retry to resend it.
Was this page helpful?