Members API reference
Members endpoints of the Quackback REST API: paths, parameters, request fields and responses.
This is the reference for the Members endpoints of the Quackback REST API: every endpoint, its parameters, request fields and response fields. It is generated from the API's OpenAPI description, so it matches what the API accepts.
All paths are relative to /api/v1 on your workspace's address (for example https://feedback.example.com/api/v1). Authenticate with an API key in the Authorization: Bearer qb_... header. For keys, errors, pagination and rate limits, see API overview. Every workspace also serves an interactive reference at /api/v1/docs.
Endpoints
GET /principals: List team membersGET /members: List team membersGET /principals/{principalId}: Get a team memberPATCH /principals/{principalId}: Update a team memberDELETE /principals/{principalId}: Remove a team memberGET /members/{principalId}: Get a team memberPATCH /members/{principalId}: Update a team memberDELETE /members/{principalId}: Remove a team member
List team members
GET /api/v1/principals
Returns all team members (admin and member roles) in the workspace
Response 200: returns id, userId, role, name, email, image, createdAt.
List team members
GET /api/v1/members
Deprecated alias of GET /principals; use that path instead. Returns all team members (admin and member roles) in the workspace
Response 200: returns id, userId, role, name, email, image, createdAt.
Get a team member
GET /api/v1/principals/{principalId}
Get a single team member by ID
Parameters
Name | In | Type | Required | Description |
|---|---|---|---|---|
| path | string | Yes | Principal ID |
Response 200: returns id, userId, role, name, email, image, createdAt.
Update a team member
PATCH /api/v1/principals/{principalId}
Update a team member's role, or add a portal user to the team by giving them a role. A portal user must have signed in (a provider account or a portal session); they join at once and take a seat. Only an admin key grants the admin role or changes an admin. Cannot modify your own role.
Parameters
Name | In | Type | Required | Description |
|---|---|---|---|---|
| path | string | Yes | Principal ID |
Request body
Field | Type | Required | Description |
|---|---|---|---|
| string ( | Yes | New role for the member |
| string | No | Custom role to grant (from the roles table). Requires role='member'; the Owner preset is rejected. |
Response 200: returns id, userId, role, name, email, image, createdAt.
Remove a team member
DELETE /api/v1/principals/{principalId}
Remove a team member from the workspace (converts them to a portal user). Cannot remove yourself or the last admin; only an admin key removes an admin.
Parameters
Name | In | Type | Required | Description |
|---|---|---|---|---|
| path | string | Yes | Principal ID |
Get a team member
GET /api/v1/members/{principalId}
Deprecated alias of GET /principals/{principalId}; use that path instead. Get a single team member by ID
Parameters
Name | In | Type | Required | Description |
|---|---|---|---|---|
| path | string | Yes | Principal ID |
Response 200: returns id, userId, role, name, email, image, createdAt.
Update a team member
PATCH /api/v1/members/{principalId}
Deprecated alias of PATCH /principals/{principalId}; use that path instead. Update a team member's role, or add a portal user to the team by giving them a role. A portal user must have signed in (a provider account or a portal session); they join at once and take a seat. Only an admin key grants the admin role or changes an admin. Cannot modify your own role.
Parameters
Name | In | Type | Required | Description |
|---|---|---|---|---|
| path | string | Yes | Principal ID |
Request body
Field | Type | Required | Description |
|---|---|---|---|
| string ( | Yes | New role for the member |
| string | No | Custom role to grant (from the roles table). Requires role='member'; the Owner preset is rejected. |
Response 200: returns id, userId, role, name, email, image, createdAt.
Remove a team member
DELETE /api/v1/members/{principalId}
Deprecated alias of DELETE /principals/{principalId}; use that path instead. Remove a team member from the workspace (converts them to a portal user). Cannot remove yourself or the last admin; only an admin key removes an admin.
Parameters
Name | In | Type | Required | Description |
|---|---|---|---|---|
| path | string | Yes | Principal ID |
Was this helpful?
Your feedback shapes what we write next.
