Workspace Members
Manage the team members of a workspace. All endpoints require workspace membership; mutations additionally require a role permission.
Member Roles
| Role | Description |
|---|---|
admin | Full access including member management and workspace settings |
member | Can manage projects, templates, passes, campaigns, and segments |
List Members
GET /wallethero-api/workspace/:workspaceId/members
Lists all members of a workspace with their resolved roles.
Auth: Bearer token — workspace member.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
workspaceId | string (UUID) | Workspace identifier |
Response (200)
{
"members": [
{
"id": "22222222-2222-2222-2222-222222222222",
"email": "[email protected]",
"first_name": "John",
"last_name": "Admin",
"role": "admin",
"status": "active",
"joined_at": "2024-01-15T10:30:00Z",
"last_active": "2024-02-01T08:12:00Z"
}
]
}Response Fields
| Field | Type | Description |
|---|---|---|
id | string (UUID) | User identifier |
email | string | User's email address |
first_name | string | User's first name |
last_name | string | User's last name |
role | string | One of admin, member |
status | string | One of active, suspended |
joined_at | string (ISO 8601) | When the user joined |
last_active | string (ISO 8601) | null | Last activity timestamp |
SDK
const { members } = await wh.workspaces.getMembers("WORKSPACE_ID");Add Member
POST /wallethero-api/workspace/:workspaceId/members
Adds an existing user (by user_id) to the workspace. Idempotent — re-adding an existing member is a no-op and does not downgrade their role. For inviting people by email, use Invite User instead.
Auth: Bearer token — requires the manage_members permission.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
workspaceId | string (UUID) | Workspace identifier |
Request Body
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
user_id | string (UUID) | Yes | — | User to add |
role | string | No | member | One of admin, member |
Example Request
curl -X POST "https://api.wallethero.app/wallethero-api/workspace/WORKSPACE_ID/members" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "user_id": "44444444-4444-4444-4444-444444444444", "role": "member" }'Response (201 new, 200 already a member)
{
"message": "User added to workspace",
"member": { "user_id": "44444444-4444-4444-4444-444444444444", "role": "member" },
"already_member": false
}If the user is already a member, the status is 200 and already_member is true.
SDK
const result = await wh.workspaces.addMember(
"WORKSPACE_ID",
"44444444-4444-4444-4444-444444444444",
{ role: "member" },
);Remove Member
DELETE /wallethero-api/workspace/:workspaceId/members/:userId
Removes a user from the workspace. You cannot remove yourself.
Auth: Bearer token — requires the remove_members permission.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
workspaceId | string (UUID) | Workspace identifier |
userId | string (UUID) | User to remove |
Example Request
curl -X DELETE "https://api.wallethero.app/wallethero-api/workspace/WORKSPACE_ID/members/USER_ID" \
-H "Authorization: Bearer YOUR_TOKEN"Response (200)
{ "message": "User removed from workspace successfully" }SDK
await wh.workspaces.removeMember("WORKSPACE_ID", "USER_ID");Change Member Role
PATCH /wallethero-api/workspace/:workspaceId/members/:userId/role
Changes a member's role. You cannot change your own role.
Auth: Bearer token — requires the manage_members permission.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
workspaceId | string (UUID) | Workspace identifier |
userId | string (UUID) | User whose role is changing |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
role | string | Yes | One of admin, member |
Example Request
curl -X PATCH "https://api.wallethero.app/wallethero-api/workspace/WORKSPACE_ID/members/USER_ID/role" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "role": "admin" }'Response (200)
{ "message": "Member role updated successfully", "role": "admin" }SDK
No SDK method — call the REST endpoint directly.
Get Member Role
GET /wallethero-api/workspace/:workspaceId/members/:userId/role
Returns a single member's role information.
Auth: Bearer token — workspace member.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
workspaceId | string (UUID) | Workspace identifier |
userId | string (UUID) | User to look up |
Response (200)
{
"role": "admin",
"role_id": "55555555-5555-5555-5555-555555555555",
"is_creator": true
}Response Fields
| Field | Type | Description |
|---|---|---|
role | string | One of admin, member |
role_id | string (UUID) | null | Internal role identifier |
is_creator | boolean | Whether this user created the workspace |
SDK
No SDK method — call the REST endpoint directly.