Users — admin API

The /users service is the server-side counterpart to /account: where /account acts as the logged-in end-user, /users lets your backend manage any user in the project. Every call needs a server API key (X-Appwrite-Key).

Create, list & inspect

curl
# create a user (password optional; omit for a passwordless/OAuth-only account)
curl -X POST "https://base.finiteskills.com/v1/users" -H "X-Appwrite-Project: <YOUR_PROJECT_ID>" \
  -H "X-Appwrite-Key: <API_KEY>" -H "Content-Type: application/json" \
  -d '{"userId":"unique()","email":"user@example.com","password":"password123","name":"Jane"}'

# list (supports queries[]=… like documents) / get one
GET /users
GET /users/{id}

Manage a user

Endpoints
PATCH  /users/{id}            { email, name, phone, password }   # update profile fields
PATCH  /users/{id}/status     { status: true|false }            # enable / block
PATCH  /users/{id}/labels     { labels: ["pro","beta"] }        # assign labels (usable as roles)
PATCH  /users/{id}/prefs      { prefs: { theme: "dark" } }      # arbitrary per-user prefs
GET    /users/{id}/sessions                                     # list active sessions
DELETE /users/{id}/sessions                                     # revoke all sessions
DELETE /users/{id}/mfa                                          # reset the users MFA factors
DELETE /users/{id}                                              # delete the user

Bulk import

Migrate users from another system in one call. An existing password hash is preserved verbatim (e.g. a scrypt$… value), so users keep their passwords without a reset:

POST /users/import
{
  "users": [
    { "userId": "unique()", "email": "a@example.com", "name": "A",
      "passwordHash": "scrypt$..." },
    { "userId": "unique()", "email": "b@example.com", "name": "B" }
  ]
}

Impersonation

POST /users/{id}/tokens mints a real session (and JWT) for that user without their password — for support tooling or "log in as user" admin flows. Treat the returned secret like a password.

curl
curl -X POST "https://base.finiteskills.com/v1/users/USER_ID/tokens" \
  -H "X-Appwrite-Project: <YOUR_PROJECT_ID>" -H "X-Appwrite-Key: <API_KEY>"