Search the docs

Search guides, API endpoints and MCP tools.

Members

A member is a person in a workspace with one role: owner, admin, member or viewer. Owners and admins manage members and invites, members do the work, and viewers only read.

The Member object

A person in the workspace and their role.

Attributes

userIdstringRequired

The member's user ID.

namestringRequired

The member's display name.

emailstringRequired

The member's email address.

imagenullable stringRequired

URL of the member's profile photo, or null.

rolestringRequired

Owners and admins manage the workspace and its people, members do the work, and viewers only read.

One ofowneradminmemberviewer
joinedAtstringRequired

When the person joined the workspace, as an ISO 8601 timestamp.

teamsarray of stringsRequired

Names of the teams the member is in, sorted alphabetically, such as Web.

The Member object
{  "userId": "Us3NfP8kLq2V",  "name": "Maya Patel",  "email": "maya@acme.dev",  "image": "https://images.clankertest.com/users/Us3NfP8kLq2V/profile-Ph8KcV2nRx4M.webp",  "role": "owner",  "joinedAt": "2026-10-01T16:20:00.000Z",  "teams": [    "Web"  ]}

List members

GET/v1/workspaces/{slug}/members

Returns the workspace's active members with their roles and teams, sorted by name. Any member can list members.

Path parameters

slugstringRequired

The workspace's slug or ID, such as acme.

Returns

Returns an array of Member objects. Status 200.

Errors

400
InvalidInputThe request is malformed, or a value is not allowed.
401
UnauthorizedThe request has no valid API key.
403
ForbiddenThe key's user or role may not do this.
404
NotFoundThe workspace or object does not exist, or the caller cannot see it.
409
ConflictThe change conflicts with current data, such as a slug that is already in use.
500
InternalClanker Ship failed to handle the request. Retry, or report the response's x-request-id.
GET/v1/workspaces/{slug}/members
curl https://api.qa.clankership.net/v1/workspaces/acme/members \  -H "Authorization: Bearer $CLANKER_API_KEY"
Response200
[  {    "userId": "Us3NfP8kLq2V",    "name": "Maya Patel",    "email": "maya@acme.dev",    "image": "https://images.clankertest.com/users/Us3NfP8kLq2V/profile-Ph8KcV2nRx4M.webp",    "role": "owner",    "joinedAt": "2026-10-01T16:20:00.000Z",    "teams": [      "Web"    ]  }]

Change a member's role

PATCH/v1/workspaces/{slug}/members/{userId}

Sets a member's role and records a member.role_changed event. Only owners and admins can change roles, and admins cannot change an owner's role or make anyone an owner. The last owner cannot be demoted.

Path parameters

slugstringRequired

The workspace's slug or ID, such as acme.

userIdstringRequired

The member's user ID, such as Us9DcT4wHn6R.

Body parameters

rolestringRequired

The member's new role: owner, admin, member or viewer.

One ofowneradminmemberviewer

Returns

Returns an object with these fields. Status 200.

okbooleanRequired

Always true: the change was made.

Always true

Errors

400
InvalidInputThe request is malformed, or a value is not allowed.
401
UnauthorizedThe request has no valid API key.
403
ForbiddenThe key's user or role may not do this.
404
NotFoundThe workspace or object does not exist, or the caller cannot see it.
409
ConflictThe change conflicts with current data, such as a slug that is already in use.
500
InternalClanker Ship failed to handle the request. Retry, or report the response's x-request-id.
PATCH/v1/workspaces/{slug}/members/{userId}
curl -X PATCH https://api.qa.clankership.net/v1/workspaces/acme/members/{userId} \  -H "Authorization: Bearer $CLANKER_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "role": "admin"  }'
Response200
{  "ok": true}

Remove a member

DELETE/v1/workspaces/{slug}/members/{userId}

Removes the person from the workspace and its teams, and records a member.removed event. Only owners and admins can remove members, and admins cannot remove owners. Nobody can remove themselves or the last owner.

Path parameters

slugstringRequired

The workspace's slug or ID, such as acme.

userIdstringRequired

The member's user ID, such as Us9DcT4wHn6R.

Returns

Returns an object with these fields. Status 200.

okbooleanRequired

Always true: the change was made.

Always true

Errors

400
InvalidInputThe request is malformed, or a value is not allowed.
401
UnauthorizedThe request has no valid API key.
403
ForbiddenThe key's user or role may not do this.
404
NotFoundThe workspace or object does not exist, or the caller cannot see it.
409
ConflictThe change conflicts with current data, such as a slug that is already in use.
500
InternalClanker Ship failed to handle the request. Retry, or report the response's x-request-id.
DELETE/v1/workspaces/{slug}/members/{userId}
curl -X DELETE https://api.qa.clankership.net/v1/workspaces/acme/members/{userId} \  -H "Authorization: Bearer $CLANKER_API_KEY"
Response200
{  "ok": true}

List members with your role

GET/v1/workspaces/{slug}/people

Returns the workspace's active members, plus your ID and role, so a client can tell which members you may manage. Any member can call it.

Path parameters

slugstringRequired

The workspace's slug or ID, such as acme.

Returns

Returns an object with these fields. Status 200.

userIdstringRequired

Your user ID, or the account API key's ID.

rolestringRequired

Your role in the workspace: owner, admin, member or viewer.

One ofowneradminmemberviewer
membersarray of Member objectsRequired

The workspace's active members, sorted by name.

Errors

400
InvalidInputThe request is malformed, or a value is not allowed.
401
UnauthorizedThe request has no valid API key.
403
ForbiddenThe key's user or role may not do this.
404
NotFoundThe workspace or object does not exist, or the caller cannot see it.
409
ConflictThe change conflicts with current data, such as a slug that is already in use.
500
InternalClanker Ship failed to handle the request. Retry, or report the response's x-request-id.
GET/v1/workspaces/{slug}/people
curl https://api.qa.clankership.net/v1/workspaces/acme/people \  -H "Authorization: Bearer $CLANKER_API_KEY"
Response200
{  "userId": "Us3NfP8kLq2V",  "role": "owner",  "members": [    {      "userId": "Us3NfP8kLq2V",      "name": "Maya Patel",      "email": "maya@acme.dev",      "image": "https://images.clankertest.com/users/Us3NfP8kLq2V/profile-Ph8KcV2nRx4M.webp",      "role": "owner",      "joinedAt": "2026-10-01T16:20:00.000Z",      "teams": [        "Web"      ]    }  ]}