Delete (Deactivate) / Restore User
DELETE/api/users/:user
Toggles user activation status, scoped to the current tenant.
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
Deactivate (user is currently active): if the user belongs to more than one tenant, they are removed from the current tenant only and their account stays active elsewhere. If the current tenant is their last one, the account is deactivated and their membership of this tenant is retained — that retained membership is what keeps a deactivated user listed and reactivatable.
Reactivate (user is currently deactivated): re-attaches the membership for the current tenant (mirroring the account's is_admin / is_power_user flags) and reactivates the account. Allowed when the user is already a member here OR belongs to no tenant at all. Reactivating a user whose only memberships are to OTHER tenants is rejected (404) to prevent cross-tenant claim attacks.
A deactivated account cannot sign in and will not be issued a password-reset link.
Tenant scoping: Returns 404 if the user is not a member of the current tenant on the deactivate path. Prevents any tenant admin from deactivating users system-wide by guessing IDs.
Authentication: Requires Bearer token.
Requires permission: users.delete
Request
Responses
- 200
- 401
- 403
- 404
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Not Found
Response Headers
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.