The Users service allows you to manage your project users. Use this service to search, block, and view your users' info, current sessions, and latest activity logs. You can also use the Users service to edit your users' preferences and personal info.
https://cloud.appwrite.io/v1
List Users
Get a list of all the project's users. You can use the query params to filter your results.
Request
queries Array of query strings generated using the Query class provided by the SDK. Learn more about queries. Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification
search Search term to filter your list results. Max length: 256 chars.
Response
200
GET /users
const sdk = require('node-appwrite');
// Init SDK
const client = new sdk.Client();
const users = new sdk.Users(client);
client
.setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
.setProject('5df5acd0d48c2') // Your project ID
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
;
const promise = users.list();
promise.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});
Create User
Create a new user.
Request
userId requiredUser ID. Choose your own unique ID or pass the string "unique()" to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
email User email.
phone Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.
password Plain text user password. Must be at least 8 chars.
name User name. Max length: 128 chars.
Response
201
POST /users
const sdk = require('node-appwrite');
// Init SDK
const client = new sdk.Client();
const users = new sdk.Users(client);
client
.setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
.setProject('5df5acd0d48c2') // Your project ID
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
;
const promise = users.create('[USER_ID]');
promise.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});
Create User with Argon2 Password
Create a new user. Password provided must be hashed with the Argon2 algorithm. Use the POST /users endpoint to create users with a plain text password.
Request
userId requiredUser ID. Choose your own unique ID or pass the string "unique()" to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
email requiredUser email.
password requiredUser password hashed using Argon2.
name User name. Max length: 128 chars.
Response
201
POST /users/argon2
const sdk = require('node-appwrite');
// Init SDK
const client = new sdk.Client();
const users = new sdk.Users(client);
client
.setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
.setProject('5df5acd0d48c2') // Your project ID
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
;
const promise = users.createArgon2User('[USER_ID]', 'email@example.com', 'password');
promise.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});
Create User with Bcrypt Password
Create a new user. Password provided must be hashed with the Bcrypt algorithm. Use the POST /users endpoint to create users with a plain text password.
Request
userId requiredUser ID. Choose your own unique ID or pass the string "unique()" to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
email requiredUser email.
password requiredUser password hashed using Bcrypt.
name User name. Max length: 128 chars.
Response
201
POST /users/bcrypt
const sdk = require('node-appwrite');
// Init SDK
const client = new sdk.Client();
const users = new sdk.Users(client);
client
.setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
.setProject('5df5acd0d48c2') // Your project ID
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
;
const promise = users.createBcryptUser('[USER_ID]', 'email@example.com', 'password');
promise.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});
Create User with MD5 Password
Create a new user. Password provided must be hashed with the MD5 algorithm. Use the POST /users endpoint to create users with a plain text password.
Request
userId requiredUser ID. Choose your own unique ID or pass the string "unique()" to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
email requiredUser email.
password requiredUser password hashed using MD5.
name User name. Max length: 128 chars.
Response
201
POST /users/md5
const sdk = require('node-appwrite');
// Init SDK
const client = new sdk.Client();
const users = new sdk.Users(client);
client
.setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
.setProject('5df5acd0d48c2') // Your project ID
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
;
const promise = users.createMD5User('[USER_ID]', 'email@example.com', 'password');
promise.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});
Create User with PHPass Password
Create a new user. Password provided must be hashed with the PHPass algorithm. Use the POST /users endpoint to create users with a plain text password.
Request
userId requiredUser ID. Choose your own unique ID or pass the string "unique()" to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
email requiredUser email.
password requiredUser password hashed using PHPass.
name User name. Max length: 128 chars.
Response
201
POST /users/phpass
const sdk = require('node-appwrite');
// Init SDK
const client = new sdk.Client();
const users = new sdk.Users(client);
client
.setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
.setProject('5df5acd0d48c2') // Your project ID
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
;
const promise = users.createPHPassUser('[USER_ID]', 'email@example.com', 'password');
promise.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});
Create User with Scrypt Password
Create a new user. Password provided must be hashed with the Scrypt algorithm. Use the POST /users endpoint to create users with a plain text password.
Request
userId requiredUser ID. Choose your own unique ID or pass the string "unique()" to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
email requiredUser email.
password requiredUser password hashed using Scrypt.
passwordSalt requiredOptional salt used to hash password.
passwordCpu requiredOptional CPU cost used to hash password.
passwordMemory requiredOptional memory cost used to hash password.
passwordParallel requiredOptional parallelization cost used to hash password.
passwordLength requiredOptional hash length used to hash password.
name User name. Max length: 128 chars.
Response
201
POST /users/scrypt
const sdk = require('node-appwrite');
// Init SDK
const client = new sdk.Client();
const users = new sdk.Users(client);
client
.setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
.setProject('5df5acd0d48c2') // Your project ID
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
;
const promise = users.createScryptUser('[USER_ID]', 'email@example.com', 'password', '[PASSWORD_SALT]', null, null, null, null);
promise.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});
Create User with Scrypt Modified Password
Create a new user. Password provided must be hashed with the Scrypt Modified algorithm. Use the POST /users endpoint to create users with a plain text password.
Request
userId requiredUser ID. Choose your own unique ID or pass the string "unique()" to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
email requiredUser email.
password requiredUser password hashed using Scrypt Modified.
passwordSalt requiredSalt used to hash password.
passwordSaltSeparator requiredSalt separator used to hash password.
passwordSignerKey requiredSigner key used to hash password.
name User name. Max length: 128 chars.
Response
201
POST /users/scrypt-modified
const sdk = require('node-appwrite');
// Init SDK
const client = new sdk.Client();
const users = new sdk.Users(client);
client
.setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
.setProject('5df5acd0d48c2') // Your project ID
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
;
const promise = users.createScryptModifiedUser('[USER_ID]', 'email@example.com', 'password', '[PASSWORD_SALT]', '[PASSWORD_SALT_SEPARATOR]', '[PASSWORD_SIGNER_KEY]');
promise.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});
Create User with SHA Password
Create a new user. Password provided must be hashed with the SHA algorithm. Use the POST /users endpoint to create users with a plain text password.
Request
userId requiredUser ID. Choose your own unique ID or pass the string "unique()" to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
email requiredUser email.
password requiredUser password hashed using SHA.
passwordVersion Optional SHA version used to hash password. Allowed values are: 'sha1', 'sha224', 'sha256', 'sha384', 'sha512/224', 'sha512/256', 'sha512', 'sha3-224', 'sha3-256', 'sha3-384', 'sha3-512'
name User name. Max length: 128 chars.
Response
201
POST /users/sha
const sdk = require('node-appwrite');
// Init SDK
const client = new sdk.Client();
const users = new sdk.Users(client);
client
.setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
.setProject('5df5acd0d48c2') // Your project ID
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
;
const promise = users.createSHAUser('[USER_ID]', 'email@example.com', 'password');
promise.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});
GET /users/{userId}
const sdk = require('node-appwrite');
// Init SDK
const client = new sdk.Client();
const users = new sdk.Users(client);
client
.setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
.setProject('5df5acd0d48c2') // Your project ID
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
;
const promise = users.get('[USER_ID]');
promise.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});
Delete User
Delete a user by its unique ID, thereby releasing it's ID. Since ID is released and can be reused, all user-related resources like documents or storage files should be deleted before user deletion. If you want to keep ID reserved, use the updateStatus endpoint instead.
Request
userId requiredUser ID.
Response
204
DELETE /users/{userId}
const sdk = require('node-appwrite');
// Init SDK
const client = new sdk.Client();
const users = new sdk.Users(client);
client
.setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
.setProject('5df5acd0d48c2') // Your project ID
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
;
const promise = users.delete('[USER_ID]');
promise.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});
Update Email
Update the user email by its unique ID.
Request
userId requiredUser ID.
email requiredUser email.
Response
200
PATCH /users/{userId}/email
const sdk = require('node-appwrite');
// Init SDK
const client = new sdk.Client();
const users = new sdk.Users(client);
client
.setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
.setProject('5df5acd0d48c2') // Your project ID
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
;
const promise = users.updateEmail('[USER_ID]', 'email@example.com');
promise.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});
List User Logs
Get the user activity logs list by its unique ID.
Request
userId requiredUser ID.
queries Array of query strings generated using the Query class provided by the SDK. Learn more about queries. Only supported methods are limit and offset
Response
200
GET /users/{userId}/logs
const sdk = require('node-appwrite');
// Init SDK
const client = new sdk.Client();
const users = new sdk.Users(client);
client
.setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
.setProject('5df5acd0d48c2') // Your project ID
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
;
const promise = users.listLogs('[USER_ID]');
promise.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});
List User Memberships
Get the user membership list by its unique ID.
Request
userId requiredUser ID.
Response
200
GET /users/{userId}/memberships
const sdk = require('node-appwrite');
// Init SDK
const client = new sdk.Client();
const users = new sdk.Users(client);
client
.setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
.setProject('5df5acd0d48c2') // Your project ID
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
;
const promise = users.listMemberships('[USER_ID]');
promise.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});
Update Name
Update the user name by its unique ID.
Request
userId requiredUser ID.
name requiredUser name. Max length: 128 chars.
Response
200
PATCH /users/{userId}/name
const sdk = require('node-appwrite');
// Init SDK
const client = new sdk.Client();
const users = new sdk.Users(client);
client
.setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
.setProject('5df5acd0d48c2') // Your project ID
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
;
const promise = users.updateName('[USER_ID]', '[NAME]');
promise.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});
Update Password
Update the user password by its unique ID.
Request
userId requiredUser ID.
password requiredNew user password. Must be at least 8 chars.
Response
200
PATCH /users/{userId}/password
const sdk = require('node-appwrite');
// Init SDK
const client = new sdk.Client();
const users = new sdk.Users(client);
client
.setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
.setProject('5df5acd0d48c2') // Your project ID
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
;
const promise = users.updatePassword('[USER_ID]', 'password');
promise.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});
Update Phone
Update the user phone by its unique ID.
Request
userId requiredUser ID.
number requiredUser phone number.
Response
200
PATCH /users/{userId}/phone
const sdk = require('node-appwrite');
// Init SDK
const client = new sdk.Client();
const users = new sdk.Users(client);
client
.setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
.setProject('5df5acd0d48c2') // Your project ID
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
;
const promise = users.updatePhone('[USER_ID]', '');
promise.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});
Get User Preferences
Get the user preferences by its unique ID.
Request
userId requiredUser ID.
Response
200
GET /users/{userId}/prefs
const sdk = require('node-appwrite');
// Init SDK
const client = new sdk.Client();
const users = new sdk.Users(client);
client
.setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
.setProject('5df5acd0d48c2') // Your project ID
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
;
const promise = users.getPrefs('[USER_ID]');
promise.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});
Update User Preferences
Update the user preferences by its unique ID. The object you pass is stored as is, and replaces any previous value. The maximum allowed prefs size is 64kB and throws error if exceeded.
Request
userId requiredUser ID.
prefs requiredPrefs key-value JSON object.
Response
200
PATCH /users/{userId}/prefs
const sdk = require('node-appwrite');
// Init SDK
const client = new sdk.Client();
const users = new sdk.Users(client);
client
.setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
.setProject('5df5acd0d48c2') // Your project ID
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
;
const promise = users.updatePrefs('[USER_ID]', {});
promise.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});
List User Sessions
Get the user sessions list by its unique ID.
Request
userId requiredUser ID.
Response
200
GET /users/{userId}/sessions
const sdk = require('node-appwrite');
// Init SDK
const client = new sdk.Client();
const users = new sdk.Users(client);
client
.setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
.setProject('5df5acd0d48c2') // Your project ID
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
;
const promise = users.listSessions('[USER_ID]');
promise.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});
Delete User Sessions
Delete all user's sessions by using the user's unique ID.
Request
userId requiredUser ID.
Response
204
DELETE /users/{userId}/sessions
const sdk = require('node-appwrite');
// Init SDK
const client = new sdk.Client();
const users = new sdk.Users(client);
client
.setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
.setProject('5df5acd0d48c2') // Your project ID
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
;
const promise = users.deleteSessions('[USER_ID]');
promise.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});
Delete User Session
Delete a user sessions by its unique ID.
Request
userId requiredUser ID.
sessionId requiredSession ID.
Response
204
DELETE /users/{userId}/sessions/{sessionId}
const sdk = require('node-appwrite');
// Init SDK
const client = new sdk.Client();
const users = new sdk.Users(client);
client
.setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
.setProject('5df5acd0d48c2') // Your project ID
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
;
const promise = users.deleteSession('[USER_ID]', '[SESSION_ID]');
promise.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});
Update User Status
Update the user status by its unique ID. Use this endpoint as an alternative to deleting a user if you want to keep user's ID reserved.
Request
userId requiredUser ID.
status requiredUser Status. To activate the user pass
true
and to block the user passfalse
.
Response
200
PATCH /users/{userId}/status
const sdk = require('node-appwrite');
// Init SDK
const client = new sdk.Client();
const users = new sdk.Users(client);
client
.setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
.setProject('5df5acd0d48c2') // Your project ID
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
;
const promise = users.updateStatus('[USER_ID]', false);
promise.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});
Update Email Verification
Update the user email verification status by its unique ID.
Request
userId requiredUser ID.
emailVerification requiredUser email verification status.
Response
200
PATCH /users/{userId}/verification
const sdk = require('node-appwrite');
// Init SDK
const client = new sdk.Client();
const users = new sdk.Users(client);
client
.setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
.setProject('5df5acd0d48c2') // Your project ID
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
;
const promise = users.updateEmailVerification('[USER_ID]', false);
promise.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});
Update Phone Verification
Update the user phone verification status by its unique ID.
Request
userId requiredUser ID.
phoneVerification requiredUser phone verification status.
Response
200
PATCH /users/{userId}/verification/phone
const sdk = require('node-appwrite');
// Init SDK
const client = new sdk.Client();
const users = new sdk.Users(client);
client
.setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
.setProject('5df5acd0d48c2') // Your project ID
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
;
const promise = users.updatePhoneVerification('[USER_ID]', false);
promise.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});