Skip to main content
PATCH
/
api
/
user
/
manage
/
v1
/
users
/
{email}
Update User
curl --request PATCH \
  --url https://api.manus.im/api/user/manage/v1/users/{email} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "status": "active",
  "role": "admin"
}
'
{
  "email": "user@example.com",
  "userName": "Jane Doe",
  "firstName": "Jane",
  "lastName": "Doe",
  "status": "active",
  "role": "member"
}
Questions or issues? Contact us at api-support@manus.ai.
Auth: Bearer access token from oauth.token.URL encoding: The email path parameter must be URL-encoded.Partial updates: Both status and role are optional — pass only the field(s) you want to change.Status values: active re-enables a previously disabled member; inactive disables them. removed is not supported in v1 — use the team UI for hard removal, or migrate to v2 team.user.remove.Role values: super_admin, admin, member, or free_tier_member. owner is rejected. Promoting free_tier_member → super_admin/admin/member calls Stripe to bump the team’s seat quantity; if Stripe rejects the upgrade the call returns 500 INTERNAL_ERROR and the role change is rolled back.SailPoint usage: Disable / enable account flows map to PATCH with {"status":"inactive"} / {"status":"active"}.

Authorizations

Authorization
string
header
required

OAuth 2.0 Client Credentials access token issued by /api/user/manage/v1/oauth/token. Lifetime is 1 hour.

Path Parameters

email
string<email>
required

URL-encoded email of the team member to update.

Example:

"user@example.com"

Body

application/json
status
enum<string>

Set the user's status. inactive deactivates the account; active re-enables it.

Available options:
active,
inactive
Example:

"active"

role
enum<string>

New role. Promoting free_tier_member → admin/super_admin/member triggers a Stripe seat-quantity bump; the reverse direction releases the seat implicitly.

Available options:
super_admin,
admin,
member,
free_tier_member
Example:

"admin"

Response

User updated.

A team member.

email
string<email>
Example:

"user@example.com"

userName
string
Example:

"Jane Doe"

firstName
string
Example:

"Jane"

lastName
string
Example:

"Doe"

status
enum<string>
Available options:
active,
inactive
Example:

"active"

role
enum<string>

owner is read-only — it cannot be set or changed via API. free_tier_member is a non-paying member that does not consume a Stripe seat.

Available options:
owner,
super_admin,
admin,
member,
free_tier_member
Example:

"member"