Members
GET /api/orgs/{org_id}/members
Section titled “GET /api/orgs/{org_id}/members”List Members
List all members of the organization.
Requires membership in the organization.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| org_id | path | string (uuid) | yes |
Responses
| Status | Description | Body |
|---|---|---|
| 200 | Successful Response | MemberListResponse |
| 422 | Validation Error | HTTPValidationError |
GET /api/orgs/{org_id}/members/{member_id}
Section titled “GET /api/orgs/{org_id}/members/{member_id}”Get Member
Get details of a specific member.
Requires membership in the organization.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| member_id | path | string (uuid) | yes | |
| org_id | path | string (uuid) | yes |
Responses
| Status | Description | Body |
|---|---|---|
| 200 | Successful Response | MemberResponse |
| 422 | Validation Error | HTTPValidationError |
PATCH /api/orgs/{org_id}/members/{member_id}
Section titled “PATCH /api/orgs/{org_id}/members/{member_id}”Update Member
Update a member’s role.
Requires ADMIN or OWNER role. Only OWNER can promote to ADMIN or OWNER. Cannot change your own role. Cannot demote the last OWNER.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| member_id | path | string (uuid) | yes | |
| org_id | path | string (uuid) | yes |
Request body (required)
| Field | Type | Required | Description |
|---|---|---|---|
| role | string | yes |
Responses
| Status | Description | Body |
|---|---|---|
| 200 | Successful Response | MemberResponse |
| 422 | Validation Error | HTTPValidationError |
DELETE /api/orgs/{org_id}/members/{member_id}
Section titled “DELETE /api/orgs/{org_id}/members/{member_id}”Remove Member
Remove a member from the organization.
Requires ADMIN or OWNER role. Cannot remove yourself (use a leave endpoint instead). Cannot remove the last OWNER.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| member_id | path | string (uuid) | yes | |
| org_id | path | string (uuid) | yes |
Responses
| Status | Description | Body |
|---|---|---|
| 204 | Successful Response | |
| 422 | Validation Error | HTTPValidationError |
GET /api/orgs/{org_id}/members/invitations
Section titled “GET /api/orgs/{org_id}/members/invitations”List Invitations
List all pending invitations for the organization.
Requires ADMIN or OWNER role.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| org_id | path | string (uuid) | yes |
Responses
| Status | Description | Body |
|---|---|---|
| 200 | Successful Response | InvitationResponse[] |
| 422 | Validation Error | HTTPValidationError |
PATCH /api/orgs/{org_id}/members/invitations/{invitation_id}
Section titled “PATCH /api/orgs/{org_id}/members/invitations/{invitation_id}”Update Invitation
Change the role a pending invitation will grant on redemption.
The create-organization wizard sends every invite as MEMBER and lets the owner adjust roles afterwards, so this is the ordinary path rather than a correction: by then the invitation row already exists.
Requires ADMIN or OWNER; only an OWNER may raise an invitation to ADMIN or
OWNER, matching invite_member.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| invitation_id | path | string (uuid) | yes | |
| org_id | path | string (uuid) | yes |
Request body (required)
| Field | Type | Required | Description |
|---|---|---|---|
| role | string | yes |
Responses
| Status | Description | Body |
|---|---|---|
| 200 | Successful Response | InvitationResponse |
| 422 | Validation Error | HTTPValidationError |
DELETE /api/orgs/{org_id}/members/invitations/{invitation_id}
Section titled “DELETE /api/orgs/{org_id}/members/invitations/{invitation_id}”Revoke Invitation
Revoke a pending invitation.
Requires ADMIN or OWNER role. Only pending invitations can be revoked.
Terminal and irreversible: the row keeps its token but can never return to
pending, so the emailed link is dead for good. Re-inviting the address
mints a fresh invitation with a fresh token (invite_member) — the
leaked link is never resurrected, which is the whole point of revoking.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| invitation_id | path | string (uuid) | yes | |
| org_id | path | string (uuid) | yes |
Responses
| Status | Description | Body |
|---|---|---|
| 204 | Successful Response | |
| 422 | Validation Error | HTTPValidationError |
POST /api/orgs/{org_id}/members/invite
Section titled “POST /api/orgs/{org_id}/members/invite”Invite Member
Add a user to the organization by email.
Requires ADMIN or OWNER role. If the user already has an account, they are added directly and a MemberResponse is returned. If they don’t have an account yet, a pending invitation is created and an InvitationResponse is returned (HTTP 201). When the user signs up, the invitation is redeemed automatically.
Re-inviting an address whose earlier invitation was revoked (or accepted, then unwound) creates a new invitation with a new token rather than reviving the old row — see the comment at the insert. A second pending invitation for the same address is a 409.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| org_id | path | string (uuid) | yes |
Request body (required)
| Field | Type | Required | Description |
|---|---|---|---|
string | yes | ||
| role | string | no |
Responses
| Status | Description | Body |
|---|---|---|
| 201 | Successful Response | MemberResponse | InvitationResponse |
| 422 | Validation Error | HTTPValidationError |