Skip to content

Revoke a member’s access

POST
/orgs/{org}/members/{userId}/block
curl --request POST \
--url https://api.sloose.com/orgs/org_9f3c/members/usr_4b19/block \
--header 'Authorization: Bearer <token>'

Blocks the member. Their next request is refused with ACCESS_REVOKED, and signing in again does not restore them — which is the whole point, since anybody in the customer’s Zoho org is otherwise admitted automatically and could simply sign in once more.

The membership row is kept rather than deleted, so the revocation is auditable and reversible.

org
required

The org id the session was issued for. A token for one org can never read another.

string
Example
org_9f3c

The org id the session was issued for. A token for one org can never read another.

userId
required

The member’s user id, from the member list.

string
Example
usr_4b19

The member’s user id, from the member list.

Access revoked.

Media typeapplication/json
object
member
required
object
userId
required
string
email
required
string
displayName
required
string | null
role
required
string
Allowed values: operator builder admin owner
roleSource
required

Where the role came from: the CRM profile at sign-in, or set by hand here. A manual role is not reset by signing in again.

string | null
zohoProfile
required
string | null
externalUserId
required

How the org’s CRM knows this member — the Zoho user id. Null for someone who joined another way.

string | null
lastSeenAt
required
string | null
blockedAt
required

When access was revoked. Null while they can still use the org.

string | null
key
additional properties
Example
{
"member": {
"role": "operator"
}
}

No bearer, or one that is expired, revoked or no longer resolves to a member.

Media typeapplication/json

The error envelope every non-2xx answer uses.

object
error
required

Human-readable explanation.

string
code

Machine-readable reason. Absent on a few legacy 400s.

string
key
additional properties
Examplegenerated
{
"error": "example",
"code": "example"
}

You tried to raise your own role (SELF_CHANGE), or to change somebody who outranks you or grant a role above your own (OUTRANKED).

Media typeapplication/json

The error envelope every non-2xx answer uses.

object
error
required

Human-readable explanation.

string
code

Machine-readable reason. Absent on a few legacy 400s.

string
key
additional properties
Examplegenerated
{
"error": "example",
"code": "example"
}

That person is not in this org (MEMBER_NOT_FOUND).

Media typeapplication/json

The error envelope every non-2xx answer uses.

object
error
required

Human-readable explanation.

string
code

Machine-readable reason. Absent on a few legacy 400s.

string
key
additional properties
Examplegenerated
{
"error": "example",
"code": "example"
}

The org would be left with no owner (LAST_OWNER), or their access is revoked and must be restored first (ACCESS_REVOKED).

Media typeapplication/json

The error envelope every non-2xx answer uses.

object
error
required

Human-readable explanation.

string
code

Machine-readable reason. Absent on a few legacy 400s.

string
key
additional properties
Examplegenerated
{
"error": "example",
"code": "example"
}