Key concepts

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:

ParamTypeNotes
ownerroleFull control. Exactly one per workspace. Can’t be invited into — it only moves via ownership transfer.
adminroleCan invite, change roles and remove members, but can’t touch the owner or grant a role ranked above their own.
memberroleCan view the team list and leave the workspace. Can’t invite or manage other members.
You can't demote or remove an owner, and an owner can't leave their own workspace. Transfer ownership to someone else first — then the previous owner can be changed to admin/member or removed like any other member.

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.

ParamTypeNotes
CreateadminChecked against the seat limit and existing membership at send time. Fails if either check doesn’t pass.
ResendadminIssues a fresh invite link and resets its expiry.
RevokeadminCancels the invite and immediately frees its seat.
AcceptinviteeGrants membership. Re-checks expiry and seats at this moment too, since they can drift after the invite was sent.
An invitation is email-locked: accepting it requires signing in with the exact email address it was sent to. Signing in with a different account shows a mismatch error rather than granting access.

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?