Skip to content

Enable a disabled account

The platform.users.enable operation: POST /api/v1/platform/users/{userId}/enable in the REST API and the platform_users_enable tool in the MCP server.

POST/api/v1/platform/users/{userId}/enable

Enables an account that platform.users.disable disabled (spec §6.2). Its sessions and OAuth grants don't come back: the person signs in again, and apps and MCP clients ask for consent again. Memberships were never touched, so the person has the same organizations and roles as before.

Platform admins only, after signing in within the last 15 minutes, with a reason (kept in the audit log).

At a glance

  • REST: POST /api/v1/platform/users/{userId}/enable
  • MCP tool: platform_users_enable
  • Operation ID: platform.users.enable
  • Scope: Platform
  • Permission: platform:admin
  • Risk tier: security
  • Dry run: Supported (send Ownrecord-Dry-Run: true)
  • Idempotency: Idempotency-Key required
  • Modes: Test and live
  • Authentication: API key with the platform:admin scope
  • Fresh sign-in: In the console, a sign-in within the last 15 minutes
  • Since: M13

Request

Path parameters

FieldTypeDescription
userIdusr_… ID

Body

A JSON object (Content-Type: application/json):

FieldTypeRequiredDescription
reasonstringYesWhy (kept in the audit log). Never paste personal data or secrets here.

Response

200 OK with a JSON object:

FieldTypeDescription
object"platform_user"
idusr_… ID
emailstring
namestring or null
platformRoleone of platform_admin, platform_tax_admin, platform_support or null
createdAtdate-time
lastLoginAtdate-time or null
disabledboolean
disabledAtdate-time or null
sessionsintegerConsole sessions that exist now.
oauthGrantsintegerOAuth clients (apps, MCP clients) the person granted access.
organizationsintegerOrganizations the person is a member of (counted, never listed).

Examples

Give the account back after the owner secured it

HTTP
POST /api/v1/platform/users/usr_01m5wvkry1e6w94sjxgme33fsc/enable
Authorization: Bearer or_test_…
Idempotency-Key: 3f1c9a52-7d0e-4b8f-9a61-0c2d5e8b7f14
Content-Type: application/json

{
  "reason": "The owner reset the Google account and turned on MFA (ticket 4711)."
}

Response (200):

JSON
{
  "object": "platform_user",
  "id": "usr_01m5wvkry1e6w94sjxgme33fsc",
  "email": "ana@example.com",
  "name": "Ana Horvat",
  "platformRole": null,
  "createdAt": "2026-09-14T10:02:11.000Z",
  "lastLoginAt": "2026-11-02T18:40:05.000Z",
  "disabled": false,
  "disabledAt": null,
  "sessions": 0,
  "oauthGrants": 0,
  "organizations": 1
}

Errors

CodeHTTP statusWhenWhat to do
user_not_disabled409The account isn't disabled.Reload the account: someone may have enabled it already.
resource_not_found404No account has this ID.Check the ID and that your credentials are scoped to the right organization, entity, brand and mode.
version_conflict409The account changed at the same time; retry.Fetch the object again and retry the change.
validation_failed400The reason is missing or too long.Fix the fields listed in details.issues and send the request again.
fresh_auth_required403You last signed in more than 15 minutes ago.Sign in again, then repeat the action within 15 minutes.
permission_denied403You aren't a platform admin.Ask an organization owner or admin for a role or scope that allows this action.

It can also return these common errors: api_version_unsupported, invalid_json, unsupported_media_type, authentication_required, api_key_invalid, idempotency_key_required, idempotency_key_reused, idempotency_in_progress, rate_limited, internal_error.