User — Overview USR-03
One user's account state and administrative actions.
| Who can use it | users.list (read), users.manage (write) |
|---|---|
| Where it is | /admin/users/:userId · link: https://hub.substratalapps.com/admin/users/:userId or substratal://admin/users/:userId |
| Available on | Web (PWA), iOS / iPadOS, Android, Windows, Linux (GNOME), macOS |
| Phase | MVP |
What you can do here
- Reactivate / Restore
- Resend invitation — 202 toast; 409 → not in invited state
- Reset two-factor — confirm
- Export — save file
- Delete — confirm
- Cancel erasure — visible during 7-day window
- Extend (test-mode) — users.manage; at least 15 min from now, at most 30 days after created_at (422
expires_at_out_of_range). Extending an expired User brings them back.
Related guides
- Managing users and their access — Find people, invite them, turn app access on and off, and understand why someone can or can't get in.
- Turn off someone's access and prove it worked — Pause one person's access to one app, check the result live, and find the record.
- Test end to end without touching live data — Use test-mode keys and test users to exercise your integration safely.
- Find out why someone can't get into an app — Work through account status, access paths, organization scope and roles, in that order.
On your platform
| App | Status | How it's built |
|---|---|---|
| Web (PWA) | — | Detail pane with header, tablist, toolbar; full page < 768 px |
| iOS / iPadOS | — | Pushed view; segmented Picker; toolbar actions |
| Android | Planned | Detail pane / pushed screen; PrimaryTabRow; top-bar actions |
| Windows | — | Detail pane / drill-in page; SelectorBar tabs; CommandBar actions |
| Linux (GNOME) | — | Content pane; AdwViewSwitcher; header-bar actions |
| macOS | — | Detail column; tabs as segmented Picker in toolbar principal |
Status is reported by each app's repository; — means that app doesn't report it yet.
For developers: API calls
| Method | Path | What it does |
|---|---|---|
| DELETE | /users/{id}/mfa/totp | Support reset of a user's TOTP (requires users.manage) |
| GET | /users/{id} | Fetch one user |
| PATCH | /users/{id} | Update email (self, pending verification) or status (users.manage) |
| DELETE | /users/{id} | Soft-delete a user (self or users.manage) |
| POST | /users/{id}/invitation | Re-send the invitation email to an invited user (users.manage) |
| GET | /users/{id}/export | Export everything this API holds about this user |
| DELETE | /users/{id}/erasure-requests/current | Cancel a scheduled erasure inside its 7-day window (users.manage) |
| GET | /users/{id}/profile | Fetch global Profile |
| GET | /users/{id}/subscription | A User's plan, what covers it, and their own subscription (self or billing.manage) |
Every call sends Substratal-Version: 1. Paths are at the host root, with no /v1.