Skip to content

Remove a member (or revoke a pending invitation)

DELETE
/orgs/{id}/memberships/{user_id}
curl --request DELETE \
--url https://your-org.evershell.ai/v1/orgs/example/memberships/example \
--header 'Authorization: Bearer <token>'

Permissions: members:write and the caller’s identity role must be Owner. Self-removal is forbidden — another Owner has to do it; the handler returns 403 self_delete_forbidden.

id
required
string
user_id
required
string

The membership row’s WorkOS user id (or invitation id for pending invites).

OK

Caller lacks members:write, is not an Owner, or attempted to remove themselves (code self_delete_forbidden).

Media type application/json
object
error
required
object
code
required

Closed-enum slug (e.g. permission_denied, validation_error, workspace_not_found)

string
message
required

Human-readable summary

string
request_id
required

Server-generated request id for correlating logs

string
details

Optional structured context. Validation errors land at details.fields as a per-field map.

object
key
additional properties
any
Example
{
"error": {
"code": "permission_denied",
"message": "caller lacks required scope",
"request_id": "7f3a9c2e"
}
}

Resource not found in the caller’s org

Media type application/json
object
error
required
object
code
required

Closed-enum slug (e.g. permission_denied, validation_error, workspace_not_found)

string
message
required

Human-readable summary

string
request_id
required

Server-generated request id for correlating logs

string
details

Optional structured context. Validation errors land at details.fields as a per-field map.

object
key
additional properties
any
Example
{
"error": {
"code": "permission_denied",
"message": "caller lacks required scope",
"request_id": "7f3a9c2e"
}
}

State conflict (in-use cascade guard, last-owner, etc.)

Media type application/json
object
error
required
object
code
required

Closed-enum slug (e.g. permission_denied, validation_error, workspace_not_found)

string
message
required

Human-readable summary

string
request_id
required

Server-generated request id for correlating logs

string
details

Optional structured context. Validation errors land at details.fields as a per-field map.

object
key
additional properties
any
Example
{
"error": {
"code": "permission_denied",
"message": "caller lacks required scope",
"request_id": "7f3a9c2e"
}
}