/v1/workspace mirror what the dashboard does with members and seats.
Which credential works where
This is the part to read before anything else.
Transferring ownership and archiving a workspace have no API at all. They are the only actions that change who pays the bill, and no machine credential reaches them.
Read the workspace
seatsUsed counts active members and pending invitations that have not expired. An expired invitation stops counting on its own.
List members
status.
Invite
sendEmail: false is the hatch for delivering the invitation your own way. The response is the only place the link appears — if you lose it, call resend, which issues a new one and kills the old.
Inviting an address that already has a pending invitation is not an error: it rotates the token in place and returns 200 instead of 201.
Errors worth handling
Removing a member who created API keys
DELETE refuses with 409 MEMBER_HAS_API_KEYS and lists the keys:
revoke— the keys stop authenticating. Integrations through them break immediately.keep— the keys keep working and are reassigned to the caller.