| title | Remove workspace member |
|---|---|
| description | Remove a member from a workspace via Plane API. HTTP POST request to deactivate users across projects and teamspaces. |
| keywords | plane api, remove member, delete member, workspace members, user management, rest api, api integration |
POST
/api/v1/workspaces/{slug}/members/remove/
Removes a member from a workspace. This deactivates them across all projects, removes them from teamspaces and pages, and optionally reduces seat count.
Email address of the member to remove.
Reduce purchased seat count by 1. Defaults to false.
| Status | Description |
|---|---|
| 204 | Member removed successfully (no body) |
| 400 | Validation error (see below) |
| 403 | You are not a member of this workspace |
| 404 | Workspace or member not found |
400 Validation Errors:
emailfield is required.- Cannot remove yourself. You'll need leave the workspace from the application.
- Cannot remove a member with a higher role than yours.
- Member is the sole admin of one or more projects — promote another admin first.
curl -X POST \
"https://api.plane.so/api/v1/workspaces/my-workspace/members/remove/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"email": "jane@example.com",
"remove_seat": true
}'import requests
response = requests.post(
"https://api.plane.so/api/v1/workspaces/my-workspace/members/remove/",
headers={"X-API-Key": "your-api-key"},
json={
"email": "jane@example.com",
"remove_seat": True
}
)
print(response.status_code) # 204 on successconst response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/members/remove/", {
method: "POST",
headers: {
"X-API-Key": "your-api-key",
"Content-Type": "application/json",
},
body: JSON.stringify({
email: "jane@example.com",
remove_seat: true,
}),
});
console.log(response.status); // 204 on successNo Content