GET /rest/bpm/wle/v1/user/{name} returns the user attributes (id, full name, e-mail, memberships); preferences are a different data set and come back only when you ask for them:
GET /rest/bpm/wle/v1/user/{userName}?parts=all -> "userPreferences" object included
GET /rest/bpm/wle/v1/user/{userName}?parts=userPreferences,memberships
GET /rest/bpm/wle/v1/user/{userName}?includeInternalMemberships=true&refreshUser=true&parts=all // refresh from the registry firstTypical answer (BPM 8.5.7 / BAW):
{ "status": "200", "data": { "userName": "jdoe", "fullName": "John Doe", "emailAddress": "jdoe@example.com",
"userPreferences": { "Task Email Notification": "true", "Email Address": "jdoe@example.com", "Locale": "en_US", "Send Task Email Notifications": "false" }, ... } }If the object is empty although parts=all is used: the user has never saved preferences (Process Portal > Preferences stores them on first change; the REST API does not synthesise defaults), or the call was made for a different user than the one logged in without administrator rights - preferences of other users need the tw_admins role. Set them with PUT /rest/bpm/wle/v1/user/{name}?action=setPreference&key=Email%20Address&value=....
References