# PwlUser

## POST /api/v2/PwlLogin

> Logs in a user by sending a magic link to the user's e-mail address.> \
> If the user does not exist, a new user is created (if the tenant allows user registration).

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"paths":{"/api/v2/PwlLogin":{"post":{"tags":["PwlUser"],"summary":"Logs in a user by sending a magic link to the user's e-mail address.\r\nIf the user does not exist, a new user is created (if the tenant allows user registration).","operationId":"PwlUser-Login","requestBody":{"description":"The login credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSpecs"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}}},"components":{"schemas":{"UserSpecs":{"type":"object","properties":{"tenant":{"type":"string","description":"Name of the Tenant this user is associated to. Required during \r\nLogin and Registration operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"userID":{"type":"string","description":"User ID. Unique and assigned by the system.\r\nReturned during Login and Get operations. Ignored in other cases.","nullable":true},"userName":{"type":"string","description":"User name. Must be unique. Required during Login and Registration\r\noperations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"eMail":{"type":"string","description":"E-mail address. Required during Registration operations. Used during Update operations. May be used as an alternative to UserName during Login operations. Returned during Get operations. <br> The address is checked via a verification code.","nullable":true},"avatarURL":{"type":"string","description":"URL of the avatar image representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURL":{"type":"string","description":"URL of the avatar 3D model representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURLType":{"type":"string","description":"Additional information about the avatar 3D model URL, e.g. if it's a head-only, full-body avatar, custom model etc. <br> Sample possible values are: <ul> <li><code>readyplayerme</code>: the avatar 3D URL points a half-body ReadyPlayerMe GLB model</li> <li><code>readyplayerme-full</code>: the avatar 3D URL points a full-body ReadyPlayerMe GLB model</li> <li><code>customglb</code>: the avatar 3D URL points to a custom GLB model</li> </ul>","nullable":true},"dontSendInvitationEmail":{"type":"boolean","description":"If ```True``` during a Creation operation, the automatic\r\ninvitation e-mail is not sent, and the temporary password is\r\nreturned as part of the operation response.\r\nUsed during Creation operations. Ignored in other cases.","nullable":true},"referral":{"type":"string","description":"Optional referral URL from which the User reached the registration\r\npage.","nullable":true},"couponCode":{"type":"string","description":"Optional coupon code used by the User during Registration.","nullable":true},"newsletterSubscribed":{"type":"boolean","description":"```True``` if the e-mail address is subscribed to the newsletter.\r\n            Used during Registration and Update operations.\r\n            Returned during Get operations.","nullable":true},"notificationPrefs":{"type":"array","items":{"$ref":"#/components/schemas/NotificationPrefsSpecs"},"description":"List of Notification Preferences objects.\r\nUsed Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"admin":{"type":"boolean","description":"```True``` if the User is an administrator, i.e. can administer\r\n            the tenant they are part of.\r\n            Used during Creation and Update operations by a super administrator.\r\n            Returned during Login and Get operations.","nullable":true},"superAdmin":{"type":"boolean","description":"```True``` if the User is a super administrator, i.e. can\r\n            administer all tenants.\r\n            Returned during Login and Get operations.\r\n            Ignored in other cases.","nullable":true},"numMemori":{"type":"integer","description":"The current number of Memori objects belonging to this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxMemori":{"type":"integer","description":"Maximum number of Memori objects this User can create.\r\nIf ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"monthSessions":{"type":"integer","description":"Number of sessions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User. Valid sessions are performed by a not Giver user with at least one request/response pair. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthDeepThoughtValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxFreeSessions":{"type":"integer","description":"Maximum number of free Memori sessions this User can open per month.\r\nif ```0>``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"nonFreeSessionCost":{"type":"number","description":"The cost of each new session above the max free sessions threshold.","format":"double","nullable":true},"monthCompletions":{"type":"integer","description":"Number of completions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthDeepThoughtCompletions":{"type":"integer","description":"Number of completions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthImportedSize":{"type":"integer","description":"Number of characters imported in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int64","nullable":true},"maxCompletions":{"type":"integer","description":"Maximum number of completions for this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"maxImportSize":{"type":"integer","description":"Maximum number of characters that can imported be by this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int64","nullable":true},"paying":{"type":"boolean","description":"If ```True``` means this User has an actual payment\r\ncontract in effect and non-free sessions (i.e. sessions above\r\nthe max free session threshold) can be performed.","nullable":true},"enableMemoriCreation":{"type":"boolean","description":"```True``` if the User can create new Memori objects.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBoardOfExperts":{"type":"boolean","description":"```True``` if the User can access the Board of Experts feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableDCMIntegration":{"type":"boolean","description":"```True``` if the User access the DCM integration feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBadges":{"type":"boolean","description":"If ```True``` this User accepts DCM outcomes and\r\nconsequently can receive badges in the Open Badge format.\r\nUsed during Creation and Update operations by an administrator.\r\nReturned during Get and Login operations.","nullable":true},"enableDeepThought":{"type":"boolean","description":"```True``` if the User can access the Deep Thought feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableVirtualSpaces":{"type":"boolean","description":"```True``` if the User can access the Virtual Spaces feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"birthDate":{"type":"string","description":"User date of birth. Necessary of age-restricted features, such as\r\nenabling completions or accessing NSFW content.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","format":"date-time","nullable":true},"age":{"type":"integer","description":"Age computed from the birth date.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"tnCAndPPAccepted":{"type":"boolean","description":"Terms & Conditions and Privacy Policy acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False all operations that imply a change are blocked.\r\nMandatory during Registration. Used during Update operations.\r\nReturned during Get operations.","nullable":true},"tnCAndPPAcceptanceDate":{"type":"string","description":"Date of acceptance of Terms & Conditions and Privacy Policy.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"pAndCUAccepted":{"type":"boolean","description":"Profiling & Commercial Use acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False features that require profiling and may imply commercial\r\ncommunication to the User (e.g. Deep Thought) are disabled.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"pAndCUAcceptanceDate":{"type":"string","description":"Date of acceptance of Profiling & Commercial Use.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"magicLinkURL":{"type":"string","description":"Optional magic link URL. If not set a default one is used.\r\nThe URL is invoked appending the Session ID at the end.\r\nUsed during Login and Create operations.\r\nIgnored in other cases.","nullable":true},"redirectTo":{"type":"string","description":"Optional RedirectTo.\r\nIf set the user will be redirected to the specified page.\r\nIgnored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a User object."},"NotificationPrefsSpecs":{"type":"object","properties":{"chatLogExtractionPeriod":{"type":"string","description":"Periodicity of chat log extraction (hourly, daily, weekly or none). When chat log extraction is enabled (i.e. not <code>None</code>) chats performed on Memori owned or managed by the User will be periodically collected and sent via e-mail. Required. <br> Can be one of the following:<ul> <li><code>None</code></li>: no chat log extraction is performed. <li><code>Hourly</code></li>: chat log extraction is performed every hour. <li><code>Hourly</code></li>: chat log extraction is performed daily. <li><code>Hourly</code></li>: chat log extraction is performed weekly. </ul>","nullable":true},"chatLogExtractionMinLines":{"type":"integer","description":"Minimum lines for an extracted chat to be sent via e-mail to\r\nthe User. If ```0``` no filter is applied.\r\nDefault is ```5```.","format":"int32","nullable":true},"memoriID":{"type":"string","description":"Memori ID to which these preferences apply to.\r\nIf ```Null``` these preferences have default value\r\nand apply to all Memori objects not specified with other\r\npreferences.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Notificattion Preferences object."},"Response":{"type":"object","properties":{"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Base response."}}}}
````

## POST /api/v2/LoginWithOTP

> Logs in a user by a 4 digits verification code to the user's e-mail address.> \
> If the user does not exist, a new user is created (if the tenant allows user registration).

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"paths":{"/api/v2/LoginWithOTP":{"post":{"tags":["PwlUser"],"summary":"Logs in a user by a 4 digits verification code to the user's e-mail address.\r\nIf the user does not exist, a new user is created (if the tenant allows user registration).","operationId":"PwlUser-LoginWithOTP","requestBody":{"description":"The login credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSpecs"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}}},"components":{"schemas":{"UserSpecs":{"type":"object","properties":{"tenant":{"type":"string","description":"Name of the Tenant this user is associated to. Required during \r\nLogin and Registration operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"userID":{"type":"string","description":"User ID. Unique and assigned by the system.\r\nReturned during Login and Get operations. Ignored in other cases.","nullable":true},"userName":{"type":"string","description":"User name. Must be unique. Required during Login and Registration\r\noperations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"eMail":{"type":"string","description":"E-mail address. Required during Registration operations. Used during Update operations. May be used as an alternative to UserName during Login operations. Returned during Get operations. <br> The address is checked via a verification code.","nullable":true},"avatarURL":{"type":"string","description":"URL of the avatar image representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURL":{"type":"string","description":"URL of the avatar 3D model representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURLType":{"type":"string","description":"Additional information about the avatar 3D model URL, e.g. if it's a head-only, full-body avatar, custom model etc. <br> Sample possible values are: <ul> <li><code>readyplayerme</code>: the avatar 3D URL points a half-body ReadyPlayerMe GLB model</li> <li><code>readyplayerme-full</code>: the avatar 3D URL points a full-body ReadyPlayerMe GLB model</li> <li><code>customglb</code>: the avatar 3D URL points to a custom GLB model</li> </ul>","nullable":true},"dontSendInvitationEmail":{"type":"boolean","description":"If ```True``` during a Creation operation, the automatic\r\ninvitation e-mail is not sent, and the temporary password is\r\nreturned as part of the operation response.\r\nUsed during Creation operations. Ignored in other cases.","nullable":true},"referral":{"type":"string","description":"Optional referral URL from which the User reached the registration\r\npage.","nullable":true},"couponCode":{"type":"string","description":"Optional coupon code used by the User during Registration.","nullable":true},"newsletterSubscribed":{"type":"boolean","description":"```True``` if the e-mail address is subscribed to the newsletter.\r\n            Used during Registration and Update operations.\r\n            Returned during Get operations.","nullable":true},"notificationPrefs":{"type":"array","items":{"$ref":"#/components/schemas/NotificationPrefsSpecs"},"description":"List of Notification Preferences objects.\r\nUsed Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"admin":{"type":"boolean","description":"```True``` if the User is an administrator, i.e. can administer\r\n            the tenant they are part of.\r\n            Used during Creation and Update operations by a super administrator.\r\n            Returned during Login and Get operations.","nullable":true},"superAdmin":{"type":"boolean","description":"```True``` if the User is a super administrator, i.e. can\r\n            administer all tenants.\r\n            Returned during Login and Get operations.\r\n            Ignored in other cases.","nullable":true},"numMemori":{"type":"integer","description":"The current number of Memori objects belonging to this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxMemori":{"type":"integer","description":"Maximum number of Memori objects this User can create.\r\nIf ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"monthSessions":{"type":"integer","description":"Number of sessions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User. Valid sessions are performed by a not Giver user with at least one request/response pair. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthDeepThoughtValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxFreeSessions":{"type":"integer","description":"Maximum number of free Memori sessions this User can open per month.\r\nif ```0>``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"nonFreeSessionCost":{"type":"number","description":"The cost of each new session above the max free sessions threshold.","format":"double","nullable":true},"monthCompletions":{"type":"integer","description":"Number of completions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthDeepThoughtCompletions":{"type":"integer","description":"Number of completions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthImportedSize":{"type":"integer","description":"Number of characters imported in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int64","nullable":true},"maxCompletions":{"type":"integer","description":"Maximum number of completions for this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"maxImportSize":{"type":"integer","description":"Maximum number of characters that can imported be by this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int64","nullable":true},"paying":{"type":"boolean","description":"If ```True``` means this User has an actual payment\r\ncontract in effect and non-free sessions (i.e. sessions above\r\nthe max free session threshold) can be performed.","nullable":true},"enableMemoriCreation":{"type":"boolean","description":"```True``` if the User can create new Memori objects.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBoardOfExperts":{"type":"boolean","description":"```True``` if the User can access the Board of Experts feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableDCMIntegration":{"type":"boolean","description":"```True``` if the User access the DCM integration feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBadges":{"type":"boolean","description":"If ```True``` this User accepts DCM outcomes and\r\nconsequently can receive badges in the Open Badge format.\r\nUsed during Creation and Update operations by an administrator.\r\nReturned during Get and Login operations.","nullable":true},"enableDeepThought":{"type":"boolean","description":"```True``` if the User can access the Deep Thought feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableVirtualSpaces":{"type":"boolean","description":"```True``` if the User can access the Virtual Spaces feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"birthDate":{"type":"string","description":"User date of birth. Necessary of age-restricted features, such as\r\nenabling completions or accessing NSFW content.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","format":"date-time","nullable":true},"age":{"type":"integer","description":"Age computed from the birth date.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"tnCAndPPAccepted":{"type":"boolean","description":"Terms & Conditions and Privacy Policy acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False all operations that imply a change are blocked.\r\nMandatory during Registration. Used during Update operations.\r\nReturned during Get operations.","nullable":true},"tnCAndPPAcceptanceDate":{"type":"string","description":"Date of acceptance of Terms & Conditions and Privacy Policy.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"pAndCUAccepted":{"type":"boolean","description":"Profiling & Commercial Use acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False features that require profiling and may imply commercial\r\ncommunication to the User (e.g. Deep Thought) are disabled.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"pAndCUAcceptanceDate":{"type":"string","description":"Date of acceptance of Profiling & Commercial Use.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"magicLinkURL":{"type":"string","description":"Optional magic link URL. If not set a default one is used.\r\nThe URL is invoked appending the Session ID at the end.\r\nUsed during Login and Create operations.\r\nIgnored in other cases.","nullable":true},"redirectTo":{"type":"string","description":"Optional RedirectTo.\r\nIf set the user will be redirected to the specified page.\r\nIgnored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a User object."},"NotificationPrefsSpecs":{"type":"object","properties":{"chatLogExtractionPeriod":{"type":"string","description":"Periodicity of chat log extraction (hourly, daily, weekly or none). When chat log extraction is enabled (i.e. not <code>None</code>) chats performed on Memori owned or managed by the User will be periodically collected and sent via e-mail. Required. <br> Can be one of the following:<ul> <li><code>None</code></li>: no chat log extraction is performed. <li><code>Hourly</code></li>: chat log extraction is performed every hour. <li><code>Hourly</code></li>: chat log extraction is performed daily. <li><code>Hourly</code></li>: chat log extraction is performed weekly. </ul>","nullable":true},"chatLogExtractionMinLines":{"type":"integer","description":"Minimum lines for an extracted chat to be sent via e-mail to\r\nthe User. If ```0``` no filter is applied.\r\nDefault is ```5```.","format":"int32","nullable":true},"memoriID":{"type":"string","description":"Memori ID to which these preferences apply to.\r\nIf ```Null``` these preferences have default value\r\nand apply to all Memori objects not specified with other\r\npreferences.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Notificattion Preferences object."},"Response":{"type":"object","properties":{"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Base response."}}}}
````

## POST /api/v2/RefreshTemporarySession

> Refresh Temporary Session Token for a user just logged or created.

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"paths":{"/api/v2/RefreshTemporarySession":{"post":{"tags":["PwlUser"],"summary":"Refresh Temporary Session Token for a user just logged or created.","operationId":"PwlUser-RefreshTemporarySession","requestBody":{"description":"The sessionTokenSpecs with the temporary session token to refresh","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionTokenSpecs"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshSessionResponse"}}}}}}}},"components":{"schemas":{"SessionTokenSpecs":{"type":"object","properties":{"sessionToken":{"type":"string","description":"SesisonToken. Unique and assigned by the system.","nullable":true}},"additionalProperties":false,"description":"Specifications to Refresh a Temporary Session."},"RefreshSessionResponse":{"type":"object","properties":{"newSessionToken":{"type":"string","description":"New Refreshed Session Token.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Refresh Temporary Session request."}}}}
````

## POST /api/v2/ValidateOTPCode

> Validate OTP code for a user just logged or created.

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"paths":{"/api/v2/ValidateOTPCode":{"post":{"tags":["PwlUser"],"summary":"Validate OTP code for a user just logged or created.","operationId":"PwlUser-ValidateOTPCode","requestBody":{"description":"The otpCodeSpecs with the OTP code to validate","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OTPCodeSpecs"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshSessionResponse"}}}}}}}},"components":{"schemas":{"OTPCodeSpecs":{"type":"object","properties":{"tenant":{"type":"string","description":"The Tenant name.\r\nRequired.","nullable":true},"userName":{"type":"string","description":"The UserName.\r\nRequired for already registered users when the Email is not provided.","nullable":true},"eMail":{"type":"string","description":"User EMail\r\nRequired for new users and, for already registered users, when UserName is not provided.","nullable":true},"otpCode":{"type":"string","description":"OTP code to validate.\r\nRequired.","nullable":true}},"additionalProperties":false,"description":"Specifications to Refresh a Temporary Session."},"RefreshSessionResponse":{"type":"object","properties":{"newSessionToken":{"type":"string","description":"New Refreshed Session Token.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Refresh Temporary Session request."}}}}
````

## POST /api/v2/LoginWithJWT

> Logs with a JWT token from a trusted application related to an already available user.

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"paths":{"/api/v2/LoginWithJWT":{"post":{"tags":["PwlUser"],"summary":"Logs with a JWT token from a trusted application related to an already available user.","operationId":"PwlUser-LoginWithJWT","requestBody":{"description":"The JWT login specifications","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JWTLoginSpecs"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}}}}}}}},"components":{"schemas":{"JWTLoginSpecs":{"required":["jwtToken","tenant"],"type":"object","properties":{"jwtToken":{"minLength":1,"type":"string","description":"JWT token containing user information.\r\nRequired for JWT login."},"tenant":{"minLength":1,"type":"string","description":"Name of the Tenant to login to.\r\nRequired for JWT login."}},"additionalProperties":false,"description":"Specifications for JWT-based login."},"LoginResponse":{"type":"object","properties":{"token":{"type":"string","description":"Login Token. If present the Login operation succeeded.\r\nMay not be present if the login failed due to a challenge\r\nthat needs completion (password change, verification code etc.).","nullable":true},"flowID":{"type":"string","description":"Login flow ID. May be present if the Login operation failed.\r\nIn this case must be sent together with the next tentative\r\nLogin operation to complete any pending challenge (password change,\r\nverification code etc.).","nullable":true},"user":{"$ref":"#/components/schemas/UserSpecs"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Login request."},"UserSpecs":{"type":"object","properties":{"tenant":{"type":"string","description":"Name of the Tenant this user is associated to. Required during \r\nLogin and Registration operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"userID":{"type":"string","description":"User ID. Unique and assigned by the system.\r\nReturned during Login and Get operations. Ignored in other cases.","nullable":true},"userName":{"type":"string","description":"User name. Must be unique. Required during Login and Registration\r\noperations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"eMail":{"type":"string","description":"E-mail address. Required during Registration operations. Used during Update operations. May be used as an alternative to UserName during Login operations. Returned during Get operations. <br> The address is checked via a verification code.","nullable":true},"avatarURL":{"type":"string","description":"URL of the avatar image representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURL":{"type":"string","description":"URL of the avatar 3D model representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURLType":{"type":"string","description":"Additional information about the avatar 3D model URL, e.g. if it's a head-only, full-body avatar, custom model etc. <br> Sample possible values are: <ul> <li><code>readyplayerme</code>: the avatar 3D URL points a half-body ReadyPlayerMe GLB model</li> <li><code>readyplayerme-full</code>: the avatar 3D URL points a full-body ReadyPlayerMe GLB model</li> <li><code>customglb</code>: the avatar 3D URL points to a custom GLB model</li> </ul>","nullable":true},"dontSendInvitationEmail":{"type":"boolean","description":"If ```True``` during a Creation operation, the automatic\r\ninvitation e-mail is not sent, and the temporary password is\r\nreturned as part of the operation response.\r\nUsed during Creation operations. Ignored in other cases.","nullable":true},"referral":{"type":"string","description":"Optional referral URL from which the User reached the registration\r\npage.","nullable":true},"couponCode":{"type":"string","description":"Optional coupon code used by the User during Registration.","nullable":true},"newsletterSubscribed":{"type":"boolean","description":"```True``` if the e-mail address is subscribed to the newsletter.\r\n            Used during Registration and Update operations.\r\n            Returned during Get operations.","nullable":true},"notificationPrefs":{"type":"array","items":{"$ref":"#/components/schemas/NotificationPrefsSpecs"},"description":"List of Notification Preferences objects.\r\nUsed Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"admin":{"type":"boolean","description":"```True``` if the User is an administrator, i.e. can administer\r\n            the tenant they are part of.\r\n            Used during Creation and Update operations by a super administrator.\r\n            Returned during Login and Get operations.","nullable":true},"superAdmin":{"type":"boolean","description":"```True``` if the User is a super administrator, i.e. can\r\n            administer all tenants.\r\n            Returned during Login and Get operations.\r\n            Ignored in other cases.","nullable":true},"numMemori":{"type":"integer","description":"The current number of Memori objects belonging to this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxMemori":{"type":"integer","description":"Maximum number of Memori objects this User can create.\r\nIf ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"monthSessions":{"type":"integer","description":"Number of sessions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User. Valid sessions are performed by a not Giver user with at least one request/response pair. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthDeepThoughtValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxFreeSessions":{"type":"integer","description":"Maximum number of free Memori sessions this User can open per month.\r\nif ```0>``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"nonFreeSessionCost":{"type":"number","description":"The cost of each new session above the max free sessions threshold.","format":"double","nullable":true},"monthCompletions":{"type":"integer","description":"Number of completions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthDeepThoughtCompletions":{"type":"integer","description":"Number of completions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthImportedSize":{"type":"integer","description":"Number of characters imported in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int64","nullable":true},"maxCompletions":{"type":"integer","description":"Maximum number of completions for this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"maxImportSize":{"type":"integer","description":"Maximum number of characters that can imported be by this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int64","nullable":true},"paying":{"type":"boolean","description":"If ```True``` means this User has an actual payment\r\ncontract in effect and non-free sessions (i.e. sessions above\r\nthe max free session threshold) can be performed.","nullable":true},"enableMemoriCreation":{"type":"boolean","description":"```True``` if the User can create new Memori objects.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBoardOfExperts":{"type":"boolean","description":"```True``` if the User can access the Board of Experts feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableDCMIntegration":{"type":"boolean","description":"```True``` if the User access the DCM integration feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBadges":{"type":"boolean","description":"If ```True``` this User accepts DCM outcomes and\r\nconsequently can receive badges in the Open Badge format.\r\nUsed during Creation and Update operations by an administrator.\r\nReturned during Get and Login operations.","nullable":true},"enableDeepThought":{"type":"boolean","description":"```True``` if the User can access the Deep Thought feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableVirtualSpaces":{"type":"boolean","description":"```True``` if the User can access the Virtual Spaces feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"birthDate":{"type":"string","description":"User date of birth. Necessary of age-restricted features, such as\r\nenabling completions or accessing NSFW content.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","format":"date-time","nullable":true},"age":{"type":"integer","description":"Age computed from the birth date.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"tnCAndPPAccepted":{"type":"boolean","description":"Terms & Conditions and Privacy Policy acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False all operations that imply a change are blocked.\r\nMandatory during Registration. Used during Update operations.\r\nReturned during Get operations.","nullable":true},"tnCAndPPAcceptanceDate":{"type":"string","description":"Date of acceptance of Terms & Conditions and Privacy Policy.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"pAndCUAccepted":{"type":"boolean","description":"Profiling & Commercial Use acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False features that require profiling and may imply commercial\r\ncommunication to the User (e.g. Deep Thought) are disabled.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"pAndCUAcceptanceDate":{"type":"string","description":"Date of acceptance of Profiling & Commercial Use.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"magicLinkURL":{"type":"string","description":"Optional magic link URL. If not set a default one is used.\r\nThe URL is invoked appending the Session ID at the end.\r\nUsed during Login and Create operations.\r\nIgnored in other cases.","nullable":true},"redirectTo":{"type":"string","description":"Optional RedirectTo.\r\nIf set the user will be redirected to the specified page.\r\nIgnored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a User object."},"NotificationPrefsSpecs":{"type":"object","properties":{"chatLogExtractionPeriod":{"type":"string","description":"Periodicity of chat log extraction (hourly, daily, weekly or none). When chat log extraction is enabled (i.e. not <code>None</code>) chats performed on Memori owned or managed by the User will be periodically collected and sent via e-mail. Required. <br> Can be one of the following:<ul> <li><code>None</code></li>: no chat log extraction is performed. <li><code>Hourly</code></li>: chat log extraction is performed every hour. <li><code>Hourly</code></li>: chat log extraction is performed daily. <li><code>Hourly</code></li>: chat log extraction is performed weekly. </ul>","nullable":true},"chatLogExtractionMinLines":{"type":"integer","description":"Minimum lines for an extracted chat to be sent via e-mail to\r\nthe User. If ```0``` no filter is applied.\r\nDefault is ```5```.","format":"int32","nullable":true},"memoriID":{"type":"string","description":"Memori ID to which these preferences apply to.\r\nIf ```Null``` these preferences have default value\r\nand apply to all Memori objects not specified with other\r\npreferences.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Notificattion Preferences object."}}}}
````

## POST /api/v2/PwlLogout/{strToken}

> Logs out the User.

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"paths":{"/api/v2/PwlLogout/{strToken}":{"post":{"tags":["PwlUser"],"summary":"Logs out the User.","operationId":"PwlUser-Logout","parameters":[{"name":"strToken","in":"path","description":"The login token or API key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}}},"components":{"schemas":{"Response":{"type":"object","properties":{"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Base response."}}}}
````

## GET /api/v2/PwlUser/{strToken}

> Gets the details of the currently logged in User object.

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"paths":{"/api/v2/PwlUser/{strToken}":{"get":{"tags":["PwlUser"],"summary":"Gets the details of the currently logged in User object.","operationId":"PwlUser-GetUser","parameters":[{"name":"strToken","in":"path","description":"The login token or API key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetUserResponse"}}}}}}}},"components":{"schemas":{"GetUserResponse":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/UserSpecs"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get User request."},"UserSpecs":{"type":"object","properties":{"tenant":{"type":"string","description":"Name of the Tenant this user is associated to. Required during \r\nLogin and Registration operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"userID":{"type":"string","description":"User ID. Unique and assigned by the system.\r\nReturned during Login and Get operations. Ignored in other cases.","nullable":true},"userName":{"type":"string","description":"User name. Must be unique. Required during Login and Registration\r\noperations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"eMail":{"type":"string","description":"E-mail address. Required during Registration operations. Used during Update operations. May be used as an alternative to UserName during Login operations. Returned during Get operations. <br> The address is checked via a verification code.","nullable":true},"avatarURL":{"type":"string","description":"URL of the avatar image representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURL":{"type":"string","description":"URL of the avatar 3D model representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURLType":{"type":"string","description":"Additional information about the avatar 3D model URL, e.g. if it's a head-only, full-body avatar, custom model etc. <br> Sample possible values are: <ul> <li><code>readyplayerme</code>: the avatar 3D URL points a half-body ReadyPlayerMe GLB model</li> <li><code>readyplayerme-full</code>: the avatar 3D URL points a full-body ReadyPlayerMe GLB model</li> <li><code>customglb</code>: the avatar 3D URL points to a custom GLB model</li> </ul>","nullable":true},"dontSendInvitationEmail":{"type":"boolean","description":"If ```True``` during a Creation operation, the automatic\r\ninvitation e-mail is not sent, and the temporary password is\r\nreturned as part of the operation response.\r\nUsed during Creation operations. Ignored in other cases.","nullable":true},"referral":{"type":"string","description":"Optional referral URL from which the User reached the registration\r\npage.","nullable":true},"couponCode":{"type":"string","description":"Optional coupon code used by the User during Registration.","nullable":true},"newsletterSubscribed":{"type":"boolean","description":"```True``` if the e-mail address is subscribed to the newsletter.\r\n            Used during Registration and Update operations.\r\n            Returned during Get operations.","nullable":true},"notificationPrefs":{"type":"array","items":{"$ref":"#/components/schemas/NotificationPrefsSpecs"},"description":"List of Notification Preferences objects.\r\nUsed Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"admin":{"type":"boolean","description":"```True``` if the User is an administrator, i.e. can administer\r\n            the tenant they are part of.\r\n            Used during Creation and Update operations by a super administrator.\r\n            Returned during Login and Get operations.","nullable":true},"superAdmin":{"type":"boolean","description":"```True``` if the User is a super administrator, i.e. can\r\n            administer all tenants.\r\n            Returned during Login and Get operations.\r\n            Ignored in other cases.","nullable":true},"numMemori":{"type":"integer","description":"The current number of Memori objects belonging to this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxMemori":{"type":"integer","description":"Maximum number of Memori objects this User can create.\r\nIf ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"monthSessions":{"type":"integer","description":"Number of sessions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User. Valid sessions are performed by a not Giver user with at least one request/response pair. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthDeepThoughtValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxFreeSessions":{"type":"integer","description":"Maximum number of free Memori sessions this User can open per month.\r\nif ```0>``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"nonFreeSessionCost":{"type":"number","description":"The cost of each new session above the max free sessions threshold.","format":"double","nullable":true},"monthCompletions":{"type":"integer","description":"Number of completions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthDeepThoughtCompletions":{"type":"integer","description":"Number of completions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthImportedSize":{"type":"integer","description":"Number of characters imported in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int64","nullable":true},"maxCompletions":{"type":"integer","description":"Maximum number of completions for this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"maxImportSize":{"type":"integer","description":"Maximum number of characters that can imported be by this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int64","nullable":true},"paying":{"type":"boolean","description":"If ```True``` means this User has an actual payment\r\ncontract in effect and non-free sessions (i.e. sessions above\r\nthe max free session threshold) can be performed.","nullable":true},"enableMemoriCreation":{"type":"boolean","description":"```True``` if the User can create new Memori objects.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBoardOfExperts":{"type":"boolean","description":"```True``` if the User can access the Board of Experts feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableDCMIntegration":{"type":"boolean","description":"```True``` if the User access the DCM integration feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBadges":{"type":"boolean","description":"If ```True``` this User accepts DCM outcomes and\r\nconsequently can receive badges in the Open Badge format.\r\nUsed during Creation and Update operations by an administrator.\r\nReturned during Get and Login operations.","nullable":true},"enableDeepThought":{"type":"boolean","description":"```True``` if the User can access the Deep Thought feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableVirtualSpaces":{"type":"boolean","description":"```True``` if the User can access the Virtual Spaces feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"birthDate":{"type":"string","description":"User date of birth. Necessary of age-restricted features, such as\r\nenabling completions or accessing NSFW content.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","format":"date-time","nullable":true},"age":{"type":"integer","description":"Age computed from the birth date.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"tnCAndPPAccepted":{"type":"boolean","description":"Terms & Conditions and Privacy Policy acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False all operations that imply a change are blocked.\r\nMandatory during Registration. Used during Update operations.\r\nReturned during Get operations.","nullable":true},"tnCAndPPAcceptanceDate":{"type":"string","description":"Date of acceptance of Terms & Conditions and Privacy Policy.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"pAndCUAccepted":{"type":"boolean","description":"Profiling & Commercial Use acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False features that require profiling and may imply commercial\r\ncommunication to the User (e.g. Deep Thought) are disabled.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"pAndCUAcceptanceDate":{"type":"string","description":"Date of acceptance of Profiling & Commercial Use.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"magicLinkURL":{"type":"string","description":"Optional magic link URL. If not set a default one is used.\r\nThe URL is invoked appending the Session ID at the end.\r\nUsed during Login and Create operations.\r\nIgnored in other cases.","nullable":true},"redirectTo":{"type":"string","description":"Optional RedirectTo.\r\nIf set the user will be redirected to the specified page.\r\nIgnored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a User object."},"NotificationPrefsSpecs":{"type":"object","properties":{"chatLogExtractionPeriod":{"type":"string","description":"Periodicity of chat log extraction (hourly, daily, weekly or none). When chat log extraction is enabled (i.e. not <code>None</code>) chats performed on Memori owned or managed by the User will be periodically collected and sent via e-mail. Required. <br> Can be one of the following:<ul> <li><code>None</code></li>: no chat log extraction is performed. <li><code>Hourly</code></li>: chat log extraction is performed every hour. <li><code>Hourly</code></li>: chat log extraction is performed daily. <li><code>Hourly</code></li>: chat log extraction is performed weekly. </ul>","nullable":true},"chatLogExtractionMinLines":{"type":"integer","description":"Minimum lines for an extracted chat to be sent via e-mail to\r\nthe User. If ```0``` no filter is applied.\r\nDefault is ```5```.","format":"int32","nullable":true},"memoriID":{"type":"string","description":"Memori ID to which these preferences apply to.\r\nIf ```Null``` these preferences have default value\r\nand apply to all Memori objects not specified with other\r\npreferences.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Notificattion Preferences object."}}}}
````

## Creates a new user.

> Creation of User objects is granted only to administrative users.

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"paths":{"/api/v2/PwlUser/{strToken}":{"post":{"tags":["PwlUser"],"summary":"Creates a new user.","description":"Creation of User objects is granted only to administrative users.","operationId":"PwlUser-CreateUser","parameters":[{"name":"strToken","in":"path","description":"The login token or API key","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The User specifications","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSpecs"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserResponse"}}}}}}}},"components":{"schemas":{"UserSpecs":{"type":"object","properties":{"tenant":{"type":"string","description":"Name of the Tenant this user is associated to. Required during \r\nLogin and Registration operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"userID":{"type":"string","description":"User ID. Unique and assigned by the system.\r\nReturned during Login and Get operations. Ignored in other cases.","nullable":true},"userName":{"type":"string","description":"User name. Must be unique. Required during Login and Registration\r\noperations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"eMail":{"type":"string","description":"E-mail address. Required during Registration operations. Used during Update operations. May be used as an alternative to UserName during Login operations. Returned during Get operations. <br> The address is checked via a verification code.","nullable":true},"avatarURL":{"type":"string","description":"URL of the avatar image representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURL":{"type":"string","description":"URL of the avatar 3D model representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURLType":{"type":"string","description":"Additional information about the avatar 3D model URL, e.g. if it's a head-only, full-body avatar, custom model etc. <br> Sample possible values are: <ul> <li><code>readyplayerme</code>: the avatar 3D URL points a half-body ReadyPlayerMe GLB model</li> <li><code>readyplayerme-full</code>: the avatar 3D URL points a full-body ReadyPlayerMe GLB model</li> <li><code>customglb</code>: the avatar 3D URL points to a custom GLB model</li> </ul>","nullable":true},"dontSendInvitationEmail":{"type":"boolean","description":"If ```True``` during a Creation operation, the automatic\r\ninvitation e-mail is not sent, and the temporary password is\r\nreturned as part of the operation response.\r\nUsed during Creation operations. Ignored in other cases.","nullable":true},"referral":{"type":"string","description":"Optional referral URL from which the User reached the registration\r\npage.","nullable":true},"couponCode":{"type":"string","description":"Optional coupon code used by the User during Registration.","nullable":true},"newsletterSubscribed":{"type":"boolean","description":"```True``` if the e-mail address is subscribed to the newsletter.\r\n            Used during Registration and Update operations.\r\n            Returned during Get operations.","nullable":true},"notificationPrefs":{"type":"array","items":{"$ref":"#/components/schemas/NotificationPrefsSpecs"},"description":"List of Notification Preferences objects.\r\nUsed Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"admin":{"type":"boolean","description":"```True``` if the User is an administrator, i.e. can administer\r\n            the tenant they are part of.\r\n            Used during Creation and Update operations by a super administrator.\r\n            Returned during Login and Get operations.","nullable":true},"superAdmin":{"type":"boolean","description":"```True``` if the User is a super administrator, i.e. can\r\n            administer all tenants.\r\n            Returned during Login and Get operations.\r\n            Ignored in other cases.","nullable":true},"numMemori":{"type":"integer","description":"The current number of Memori objects belonging to this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxMemori":{"type":"integer","description":"Maximum number of Memori objects this User can create.\r\nIf ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"monthSessions":{"type":"integer","description":"Number of sessions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User. Valid sessions are performed by a not Giver user with at least one request/response pair. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthDeepThoughtValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxFreeSessions":{"type":"integer","description":"Maximum number of free Memori sessions this User can open per month.\r\nif ```0>``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"nonFreeSessionCost":{"type":"number","description":"The cost of each new session above the max free sessions threshold.","format":"double","nullable":true},"monthCompletions":{"type":"integer","description":"Number of completions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthDeepThoughtCompletions":{"type":"integer","description":"Number of completions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthImportedSize":{"type":"integer","description":"Number of characters imported in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int64","nullable":true},"maxCompletions":{"type":"integer","description":"Maximum number of completions for this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"maxImportSize":{"type":"integer","description":"Maximum number of characters that can imported be by this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int64","nullable":true},"paying":{"type":"boolean","description":"If ```True``` means this User has an actual payment\r\ncontract in effect and non-free sessions (i.e. sessions above\r\nthe max free session threshold) can be performed.","nullable":true},"enableMemoriCreation":{"type":"boolean","description":"```True``` if the User can create new Memori objects.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBoardOfExperts":{"type":"boolean","description":"```True``` if the User can access the Board of Experts feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableDCMIntegration":{"type":"boolean","description":"```True``` if the User access the DCM integration feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBadges":{"type":"boolean","description":"If ```True``` this User accepts DCM outcomes and\r\nconsequently can receive badges in the Open Badge format.\r\nUsed during Creation and Update operations by an administrator.\r\nReturned during Get and Login operations.","nullable":true},"enableDeepThought":{"type":"boolean","description":"```True``` if the User can access the Deep Thought feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableVirtualSpaces":{"type":"boolean","description":"```True``` if the User can access the Virtual Spaces feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"birthDate":{"type":"string","description":"User date of birth. Necessary of age-restricted features, such as\r\nenabling completions or accessing NSFW content.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","format":"date-time","nullable":true},"age":{"type":"integer","description":"Age computed from the birth date.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"tnCAndPPAccepted":{"type":"boolean","description":"Terms & Conditions and Privacy Policy acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False all operations that imply a change are blocked.\r\nMandatory during Registration. Used during Update operations.\r\nReturned during Get operations.","nullable":true},"tnCAndPPAcceptanceDate":{"type":"string","description":"Date of acceptance of Terms & Conditions and Privacy Policy.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"pAndCUAccepted":{"type":"boolean","description":"Profiling & Commercial Use acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False features that require profiling and may imply commercial\r\ncommunication to the User (e.g. Deep Thought) are disabled.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"pAndCUAcceptanceDate":{"type":"string","description":"Date of acceptance of Profiling & Commercial Use.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"magicLinkURL":{"type":"string","description":"Optional magic link URL. If not set a default one is used.\r\nThe URL is invoked appending the Session ID at the end.\r\nUsed during Login and Create operations.\r\nIgnored in other cases.","nullable":true},"redirectTo":{"type":"string","description":"Optional RedirectTo.\r\nIf set the user will be redirected to the specified page.\r\nIgnored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a User object."},"NotificationPrefsSpecs":{"type":"object","properties":{"chatLogExtractionPeriod":{"type":"string","description":"Periodicity of chat log extraction (hourly, daily, weekly or none). When chat log extraction is enabled (i.e. not <code>None</code>) chats performed on Memori owned or managed by the User will be periodically collected and sent via e-mail. Required. <br> Can be one of the following:<ul> <li><code>None</code></li>: no chat log extraction is performed. <li><code>Hourly</code></li>: chat log extraction is performed every hour. <li><code>Hourly</code></li>: chat log extraction is performed daily. <li><code>Hourly</code></li>: chat log extraction is performed weekly. </ul>","nullable":true},"chatLogExtractionMinLines":{"type":"integer","description":"Minimum lines for an extracted chat to be sent via e-mail to\r\nthe User. If ```0``` no filter is applied.\r\nDefault is ```5```.","format":"int32","nullable":true},"memoriID":{"type":"string","description":"Memori ID to which these preferences apply to.\r\nIf ```Null``` these preferences have default value\r\nand apply to all Memori objects not specified with other\r\npreferences.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Notificattion Preferences object."},"CreateUserResponse":{"type":"object","properties":{"temporaryPassword":{"type":"string","description":"Temporary password of the user. Returned only during Creation\r\noperations, and only if the ```DontSendInvitationEmail```\r\nflag is ```True```.","nullable":true},"loginToken":{"type":"string","description":"The login token of the user.\r\nReturned only if DontSendInvitationEmail flag was set to true.","nullable":true},"user":{"$ref":"#/components/schemas/UserSpecs"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Create User request."}}}}
````

## Gets the details of a User object.

> Access to User objects different than the current logged in user> \
> is granted only to administrative users.

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"paths":{"/api/v2/PwlUser/{strToken}/{strUserID}":{"get":{"tags":["PwlUser"],"summary":"Gets the details of a User object.","description":"Access to User objects different than the current logged in user\r\nis granted only to administrative users.","operationId":"PwlUser-GetUserByID","parameters":[{"name":"strToken","in":"path","description":"The login token or API key","required":true,"schema":{"type":"string"}},{"name":"strUserID","in":"path","description":"The User object ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetUserResponse"}}}}}}}},"components":{"schemas":{"GetUserResponse":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/UserSpecs"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get User request."},"UserSpecs":{"type":"object","properties":{"tenant":{"type":"string","description":"Name of the Tenant this user is associated to. Required during \r\nLogin and Registration operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"userID":{"type":"string","description":"User ID. Unique and assigned by the system.\r\nReturned during Login and Get operations. Ignored in other cases.","nullable":true},"userName":{"type":"string","description":"User name. Must be unique. Required during Login and Registration\r\noperations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"eMail":{"type":"string","description":"E-mail address. Required during Registration operations. Used during Update operations. May be used as an alternative to UserName during Login operations. Returned during Get operations. <br> The address is checked via a verification code.","nullable":true},"avatarURL":{"type":"string","description":"URL of the avatar image representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURL":{"type":"string","description":"URL of the avatar 3D model representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURLType":{"type":"string","description":"Additional information about the avatar 3D model URL, e.g. if it's a head-only, full-body avatar, custom model etc. <br> Sample possible values are: <ul> <li><code>readyplayerme</code>: the avatar 3D URL points a half-body ReadyPlayerMe GLB model</li> <li><code>readyplayerme-full</code>: the avatar 3D URL points a full-body ReadyPlayerMe GLB model</li> <li><code>customglb</code>: the avatar 3D URL points to a custom GLB model</li> </ul>","nullable":true},"dontSendInvitationEmail":{"type":"boolean","description":"If ```True``` during a Creation operation, the automatic\r\ninvitation e-mail is not sent, and the temporary password is\r\nreturned as part of the operation response.\r\nUsed during Creation operations. Ignored in other cases.","nullable":true},"referral":{"type":"string","description":"Optional referral URL from which the User reached the registration\r\npage.","nullable":true},"couponCode":{"type":"string","description":"Optional coupon code used by the User during Registration.","nullable":true},"newsletterSubscribed":{"type":"boolean","description":"```True``` if the e-mail address is subscribed to the newsletter.\r\n            Used during Registration and Update operations.\r\n            Returned during Get operations.","nullable":true},"notificationPrefs":{"type":"array","items":{"$ref":"#/components/schemas/NotificationPrefsSpecs"},"description":"List of Notification Preferences objects.\r\nUsed Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"admin":{"type":"boolean","description":"```True``` if the User is an administrator, i.e. can administer\r\n            the tenant they are part of.\r\n            Used during Creation and Update operations by a super administrator.\r\n            Returned during Login and Get operations.","nullable":true},"superAdmin":{"type":"boolean","description":"```True``` if the User is a super administrator, i.e. can\r\n            administer all tenants.\r\n            Returned during Login and Get operations.\r\n            Ignored in other cases.","nullable":true},"numMemori":{"type":"integer","description":"The current number of Memori objects belonging to this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxMemori":{"type":"integer","description":"Maximum number of Memori objects this User can create.\r\nIf ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"monthSessions":{"type":"integer","description":"Number of sessions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User. Valid sessions are performed by a not Giver user with at least one request/response pair. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthDeepThoughtValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxFreeSessions":{"type":"integer","description":"Maximum number of free Memori sessions this User can open per month.\r\nif ```0>``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"nonFreeSessionCost":{"type":"number","description":"The cost of each new session above the max free sessions threshold.","format":"double","nullable":true},"monthCompletions":{"type":"integer","description":"Number of completions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthDeepThoughtCompletions":{"type":"integer","description":"Number of completions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthImportedSize":{"type":"integer","description":"Number of characters imported in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int64","nullable":true},"maxCompletions":{"type":"integer","description":"Maximum number of completions for this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"maxImportSize":{"type":"integer","description":"Maximum number of characters that can imported be by this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int64","nullable":true},"paying":{"type":"boolean","description":"If ```True``` means this User has an actual payment\r\ncontract in effect and non-free sessions (i.e. sessions above\r\nthe max free session threshold) can be performed.","nullable":true},"enableMemoriCreation":{"type":"boolean","description":"```True``` if the User can create new Memori objects.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBoardOfExperts":{"type":"boolean","description":"```True``` if the User can access the Board of Experts feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableDCMIntegration":{"type":"boolean","description":"```True``` if the User access the DCM integration feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBadges":{"type":"boolean","description":"If ```True``` this User accepts DCM outcomes and\r\nconsequently can receive badges in the Open Badge format.\r\nUsed during Creation and Update operations by an administrator.\r\nReturned during Get and Login operations.","nullable":true},"enableDeepThought":{"type":"boolean","description":"```True``` if the User can access the Deep Thought feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableVirtualSpaces":{"type":"boolean","description":"```True``` if the User can access the Virtual Spaces feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"birthDate":{"type":"string","description":"User date of birth. Necessary of age-restricted features, such as\r\nenabling completions or accessing NSFW content.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","format":"date-time","nullable":true},"age":{"type":"integer","description":"Age computed from the birth date.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"tnCAndPPAccepted":{"type":"boolean","description":"Terms & Conditions and Privacy Policy acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False all operations that imply a change are blocked.\r\nMandatory during Registration. Used during Update operations.\r\nReturned during Get operations.","nullable":true},"tnCAndPPAcceptanceDate":{"type":"string","description":"Date of acceptance of Terms & Conditions and Privacy Policy.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"pAndCUAccepted":{"type":"boolean","description":"Profiling & Commercial Use acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False features that require profiling and may imply commercial\r\ncommunication to the User (e.g. Deep Thought) are disabled.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"pAndCUAcceptanceDate":{"type":"string","description":"Date of acceptance of Profiling & Commercial Use.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"magicLinkURL":{"type":"string","description":"Optional magic link URL. If not set a default one is used.\r\nThe URL is invoked appending the Session ID at the end.\r\nUsed during Login and Create operations.\r\nIgnored in other cases.","nullable":true},"redirectTo":{"type":"string","description":"Optional RedirectTo.\r\nIf set the user will be redirected to the specified page.\r\nIgnored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a User object."},"NotificationPrefsSpecs":{"type":"object","properties":{"chatLogExtractionPeriod":{"type":"string","description":"Periodicity of chat log extraction (hourly, daily, weekly or none). When chat log extraction is enabled (i.e. not <code>None</code>) chats performed on Memori owned or managed by the User will be periodically collected and sent via e-mail. Required. <br> Can be one of the following:<ul> <li><code>None</code></li>: no chat log extraction is performed. <li><code>Hourly</code></li>: chat log extraction is performed every hour. <li><code>Hourly</code></li>: chat log extraction is performed daily. <li><code>Hourly</code></li>: chat log extraction is performed weekly. </ul>","nullable":true},"chatLogExtractionMinLines":{"type":"integer","description":"Minimum lines for an extracted chat to be sent via e-mail to\r\nthe User. If ```0``` no filter is applied.\r\nDefault is ```5```.","format":"int32","nullable":true},"memoriID":{"type":"string","description":"Memori ID to which these preferences apply to.\r\nIf ```Null``` these preferences have default value\r\nand apply to all Memori objects not specified with other\r\npreferences.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Notificattion Preferences object."}}}}
````

## Deletes a User object.

> Access to User objects different than the current logged in user> \
> is granted only to administrative users.

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"paths":{"/api/v2/PwlUser/{strToken}/{strUserID}":{"delete":{"tags":["PwlUser"],"summary":"Deletes a User object.","description":"Access to User objects different than the current logged in user\r\nis granted only to administrative users.","operationId":"PwlUser-DeleteUser","parameters":[{"name":"strToken","in":"path","description":"The login token or API key","required":true,"schema":{"type":"string"}},{"name":"strUserID","in":"path","description":"The User object ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}}},"components":{"schemas":{"Response":{"type":"object","properties":{"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Base response."}}}}
````

## Updates the details of a User object (including its password).

> Access to User objects different than the current logged in user> \
> is granted only to administrative users.

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"paths":{"/api/v2/PwlUser/{strToken}/{strUserID}":{"patch":{"tags":["PwlUser"],"summary":"Updates the details of a User object (including its password).","description":"Access to User objects different than the current logged in user\r\nis granted only to administrative users.","operationId":"PwlUser-UpdateUser","parameters":[{"name":"strToken","in":"path","description":"The login token or API key","required":true,"schema":{"type":"string"}},{"name":"strUserID","in":"path","description":"The User object ID","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The User specifications","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSpecs"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserResponse"}}}}}}}},"components":{"schemas":{"UserSpecs":{"type":"object","properties":{"tenant":{"type":"string","description":"Name of the Tenant this user is associated to. Required during \r\nLogin and Registration operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"userID":{"type":"string","description":"User ID. Unique and assigned by the system.\r\nReturned during Login and Get operations. Ignored in other cases.","nullable":true},"userName":{"type":"string","description":"User name. Must be unique. Required during Login and Registration\r\noperations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"eMail":{"type":"string","description":"E-mail address. Required during Registration operations. Used during Update operations. May be used as an alternative to UserName during Login operations. Returned during Get operations. <br> The address is checked via a verification code.","nullable":true},"avatarURL":{"type":"string","description":"URL of the avatar image representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURL":{"type":"string","description":"URL of the avatar 3D model representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURLType":{"type":"string","description":"Additional information about the avatar 3D model URL, e.g. if it's a head-only, full-body avatar, custom model etc. <br> Sample possible values are: <ul> <li><code>readyplayerme</code>: the avatar 3D URL points a half-body ReadyPlayerMe GLB model</li> <li><code>readyplayerme-full</code>: the avatar 3D URL points a full-body ReadyPlayerMe GLB model</li> <li><code>customglb</code>: the avatar 3D URL points to a custom GLB model</li> </ul>","nullable":true},"dontSendInvitationEmail":{"type":"boolean","description":"If ```True``` during a Creation operation, the automatic\r\ninvitation e-mail is not sent, and the temporary password is\r\nreturned as part of the operation response.\r\nUsed during Creation operations. Ignored in other cases.","nullable":true},"referral":{"type":"string","description":"Optional referral URL from which the User reached the registration\r\npage.","nullable":true},"couponCode":{"type":"string","description":"Optional coupon code used by the User during Registration.","nullable":true},"newsletterSubscribed":{"type":"boolean","description":"```True``` if the e-mail address is subscribed to the newsletter.\r\n            Used during Registration and Update operations.\r\n            Returned during Get operations.","nullable":true},"notificationPrefs":{"type":"array","items":{"$ref":"#/components/schemas/NotificationPrefsSpecs"},"description":"List of Notification Preferences objects.\r\nUsed Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"admin":{"type":"boolean","description":"```True``` if the User is an administrator, i.e. can administer\r\n            the tenant they are part of.\r\n            Used during Creation and Update operations by a super administrator.\r\n            Returned during Login and Get operations.","nullable":true},"superAdmin":{"type":"boolean","description":"```True``` if the User is a super administrator, i.e. can\r\n            administer all tenants.\r\n            Returned during Login and Get operations.\r\n            Ignored in other cases.","nullable":true},"numMemori":{"type":"integer","description":"The current number of Memori objects belonging to this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxMemori":{"type":"integer","description":"Maximum number of Memori objects this User can create.\r\nIf ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"monthSessions":{"type":"integer","description":"Number of sessions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User. Valid sessions are performed by a not Giver user with at least one request/response pair. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthDeepThoughtValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxFreeSessions":{"type":"integer","description":"Maximum number of free Memori sessions this User can open per month.\r\nif ```0>``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"nonFreeSessionCost":{"type":"number","description":"The cost of each new session above the max free sessions threshold.","format":"double","nullable":true},"monthCompletions":{"type":"integer","description":"Number of completions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthDeepThoughtCompletions":{"type":"integer","description":"Number of completions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthImportedSize":{"type":"integer","description":"Number of characters imported in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int64","nullable":true},"maxCompletions":{"type":"integer","description":"Maximum number of completions for this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"maxImportSize":{"type":"integer","description":"Maximum number of characters that can imported be by this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int64","nullable":true},"paying":{"type":"boolean","description":"If ```True``` means this User has an actual payment\r\ncontract in effect and non-free sessions (i.e. sessions above\r\nthe max free session threshold) can be performed.","nullable":true},"enableMemoriCreation":{"type":"boolean","description":"```True``` if the User can create new Memori objects.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBoardOfExperts":{"type":"boolean","description":"```True``` if the User can access the Board of Experts feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableDCMIntegration":{"type":"boolean","description":"```True``` if the User access the DCM integration feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBadges":{"type":"boolean","description":"If ```True``` this User accepts DCM outcomes and\r\nconsequently can receive badges in the Open Badge format.\r\nUsed during Creation and Update operations by an administrator.\r\nReturned during Get and Login operations.","nullable":true},"enableDeepThought":{"type":"boolean","description":"```True``` if the User can access the Deep Thought feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableVirtualSpaces":{"type":"boolean","description":"```True``` if the User can access the Virtual Spaces feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"birthDate":{"type":"string","description":"User date of birth. Necessary of age-restricted features, such as\r\nenabling completions or accessing NSFW content.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","format":"date-time","nullable":true},"age":{"type":"integer","description":"Age computed from the birth date.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"tnCAndPPAccepted":{"type":"boolean","description":"Terms & Conditions and Privacy Policy acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False all operations that imply a change are blocked.\r\nMandatory during Registration. Used during Update operations.\r\nReturned during Get operations.","nullable":true},"tnCAndPPAcceptanceDate":{"type":"string","description":"Date of acceptance of Terms & Conditions and Privacy Policy.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"pAndCUAccepted":{"type":"boolean","description":"Profiling & Commercial Use acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False features that require profiling and may imply commercial\r\ncommunication to the User (e.g. Deep Thought) are disabled.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"pAndCUAcceptanceDate":{"type":"string","description":"Date of acceptance of Profiling & Commercial Use.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"magicLinkURL":{"type":"string","description":"Optional magic link URL. If not set a default one is used.\r\nThe URL is invoked appending the Session ID at the end.\r\nUsed during Login and Create operations.\r\nIgnored in other cases.","nullable":true},"redirectTo":{"type":"string","description":"Optional RedirectTo.\r\nIf set the user will be redirected to the specified page.\r\nIgnored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a User object."},"NotificationPrefsSpecs":{"type":"object","properties":{"chatLogExtractionPeriod":{"type":"string","description":"Periodicity of chat log extraction (hourly, daily, weekly or none). When chat log extraction is enabled (i.e. not <code>None</code>) chats performed on Memori owned or managed by the User will be periodically collected and sent via e-mail. Required. <br> Can be one of the following:<ul> <li><code>None</code></li>: no chat log extraction is performed. <li><code>Hourly</code></li>: chat log extraction is performed every hour. <li><code>Hourly</code></li>: chat log extraction is performed daily. <li><code>Hourly</code></li>: chat log extraction is performed weekly. </ul>","nullable":true},"chatLogExtractionMinLines":{"type":"integer","description":"Minimum lines for an extracted chat to be sent via e-mail to\r\nthe User. If ```0``` no filter is applied.\r\nDefault is ```5```.","format":"int32","nullable":true},"memoriID":{"type":"string","description":"Memori ID to which these preferences apply to.\r\nIf ```Null``` these preferences have default value\r\nand apply to all Memori objects not specified with other\r\npreferences.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Notificattion Preferences object."},"UpdateUserResponse":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/UserSpecs"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Update User request."}}}}
````

## Gets a list of all the existing User objects.

> Access to User objects different than the current logged in user> \
> is granted only to administrative users.

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"paths":{"/api/v2/PwlUsers/{strToken}":{"get":{"tags":["PwlUser"],"summary":"Gets a list of all the existing User objects.","description":"Access to User objects different than the current logged in user\r\nis granted only to administrative users.","operationId":"PwlUser-ListUsers","parameters":[{"name":"strToken","in":"path","description":"The login token or API key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUsersResponse"}}}}}}}},"components":{"schemas":{"ListUsersResponse":{"type":"object","properties":{"users":{"type":"array","items":{"$ref":"#/components/schemas/UserSpecs"},"description":"The list of User objects.","nullable":true},"count":{"type":"integer","description":"Total number of User objects.","format":"int32"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Users request."},"UserSpecs":{"type":"object","properties":{"tenant":{"type":"string","description":"Name of the Tenant this user is associated to. Required during \r\nLogin and Registration operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"userID":{"type":"string","description":"User ID. Unique and assigned by the system.\r\nReturned during Login and Get operations. Ignored in other cases.","nullable":true},"userName":{"type":"string","description":"User name. Must be unique. Required during Login and Registration\r\noperations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"eMail":{"type":"string","description":"E-mail address. Required during Registration operations. Used during Update operations. May be used as an alternative to UserName during Login operations. Returned during Get operations. <br> The address is checked via a verification code.","nullable":true},"avatarURL":{"type":"string","description":"URL of the avatar image representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURL":{"type":"string","description":"URL of the avatar 3D model representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURLType":{"type":"string","description":"Additional information about the avatar 3D model URL, e.g. if it's a head-only, full-body avatar, custom model etc. <br> Sample possible values are: <ul> <li><code>readyplayerme</code>: the avatar 3D URL points a half-body ReadyPlayerMe GLB model</li> <li><code>readyplayerme-full</code>: the avatar 3D URL points a full-body ReadyPlayerMe GLB model</li> <li><code>customglb</code>: the avatar 3D URL points to a custom GLB model</li> </ul>","nullable":true},"dontSendInvitationEmail":{"type":"boolean","description":"If ```True``` during a Creation operation, the automatic\r\ninvitation e-mail is not sent, and the temporary password is\r\nreturned as part of the operation response.\r\nUsed during Creation operations. Ignored in other cases.","nullable":true},"referral":{"type":"string","description":"Optional referral URL from which the User reached the registration\r\npage.","nullable":true},"couponCode":{"type":"string","description":"Optional coupon code used by the User during Registration.","nullable":true},"newsletterSubscribed":{"type":"boolean","description":"```True``` if the e-mail address is subscribed to the newsletter.\r\n            Used during Registration and Update operations.\r\n            Returned during Get operations.","nullable":true},"notificationPrefs":{"type":"array","items":{"$ref":"#/components/schemas/NotificationPrefsSpecs"},"description":"List of Notification Preferences objects.\r\nUsed Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"admin":{"type":"boolean","description":"```True``` if the User is an administrator, i.e. can administer\r\n            the tenant they are part of.\r\n            Used during Creation and Update operations by a super administrator.\r\n            Returned during Login and Get operations.","nullable":true},"superAdmin":{"type":"boolean","description":"```True``` if the User is a super administrator, i.e. can\r\n            administer all tenants.\r\n            Returned during Login and Get operations.\r\n            Ignored in other cases.","nullable":true},"numMemori":{"type":"integer","description":"The current number of Memori objects belonging to this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxMemori":{"type":"integer","description":"Maximum number of Memori objects this User can create.\r\nIf ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"monthSessions":{"type":"integer","description":"Number of sessions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User. Valid sessions are performed by a not Giver user with at least one request/response pair. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthDeepThoughtValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxFreeSessions":{"type":"integer","description":"Maximum number of free Memori sessions this User can open per month.\r\nif ```0>``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"nonFreeSessionCost":{"type":"number","description":"The cost of each new session above the max free sessions threshold.","format":"double","nullable":true},"monthCompletions":{"type":"integer","description":"Number of completions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthDeepThoughtCompletions":{"type":"integer","description":"Number of completions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthImportedSize":{"type":"integer","description":"Number of characters imported in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int64","nullable":true},"maxCompletions":{"type":"integer","description":"Maximum number of completions for this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"maxImportSize":{"type":"integer","description":"Maximum number of characters that can imported be by this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int64","nullable":true},"paying":{"type":"boolean","description":"If ```True``` means this User has an actual payment\r\ncontract in effect and non-free sessions (i.e. sessions above\r\nthe max free session threshold) can be performed.","nullable":true},"enableMemoriCreation":{"type":"boolean","description":"```True``` if the User can create new Memori objects.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBoardOfExperts":{"type":"boolean","description":"```True``` if the User can access the Board of Experts feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableDCMIntegration":{"type":"boolean","description":"```True``` if the User access the DCM integration feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBadges":{"type":"boolean","description":"If ```True``` this User accepts DCM outcomes and\r\nconsequently can receive badges in the Open Badge format.\r\nUsed during Creation and Update operations by an administrator.\r\nReturned during Get and Login operations.","nullable":true},"enableDeepThought":{"type":"boolean","description":"```True``` if the User can access the Deep Thought feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableVirtualSpaces":{"type":"boolean","description":"```True``` if the User can access the Virtual Spaces feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"birthDate":{"type":"string","description":"User date of birth. Necessary of age-restricted features, such as\r\nenabling completions or accessing NSFW content.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","format":"date-time","nullable":true},"age":{"type":"integer","description":"Age computed from the birth date.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"tnCAndPPAccepted":{"type":"boolean","description":"Terms & Conditions and Privacy Policy acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False all operations that imply a change are blocked.\r\nMandatory during Registration. Used during Update operations.\r\nReturned during Get operations.","nullable":true},"tnCAndPPAcceptanceDate":{"type":"string","description":"Date of acceptance of Terms & Conditions and Privacy Policy.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"pAndCUAccepted":{"type":"boolean","description":"Profiling & Commercial Use acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False features that require profiling and may imply commercial\r\ncommunication to the User (e.g. Deep Thought) are disabled.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"pAndCUAcceptanceDate":{"type":"string","description":"Date of acceptance of Profiling & Commercial Use.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"magicLinkURL":{"type":"string","description":"Optional magic link URL. If not set a default one is used.\r\nThe URL is invoked appending the Session ID at the end.\r\nUsed during Login and Create operations.\r\nIgnored in other cases.","nullable":true},"redirectTo":{"type":"string","description":"Optional RedirectTo.\r\nIf set the user will be redirected to the specified page.\r\nIgnored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a User object."},"NotificationPrefsSpecs":{"type":"object","properties":{"chatLogExtractionPeriod":{"type":"string","description":"Periodicity of chat log extraction (hourly, daily, weekly or none). When chat log extraction is enabled (i.e. not <code>None</code>) chats performed on Memori owned or managed by the User will be periodically collected and sent via e-mail. Required. <br> Can be one of the following:<ul> <li><code>None</code></li>: no chat log extraction is performed. <li><code>Hourly</code></li>: chat log extraction is performed every hour. <li><code>Hourly</code></li>: chat log extraction is performed daily. <li><code>Hourly</code></li>: chat log extraction is performed weekly. </ul>","nullable":true},"chatLogExtractionMinLines":{"type":"integer","description":"Minimum lines for an extracted chat to be sent via e-mail to\r\nthe User. If ```0``` no filter is applied.\r\nDefault is ```5```.","format":"int32","nullable":true},"memoriID":{"type":"string","description":"Memori ID to which these preferences apply to.\r\nIf ```Null``` these preferences have default value\r\nand apply to all Memori objects not specified with other\r\npreferences.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Notificattion Preferences object."}}}}
````

## Gets a paginated list of existing User objects.

> Access to User objects different than the current logged in user> \
> is granted only to administrative users.

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"paths":{"/api/v2/PwlUsers/{strToken}/{from}/{howMany}":{"get":{"tags":["PwlUser"],"summary":"Gets a paginated list of existing User objects.","description":"Access to User objects different than the current logged in user\r\nis granted only to administrative users.","operationId":"PwlUser-ListUsersPaginated","parameters":[{"name":"strToken","in":"path","description":"The login token or API key","required":true,"schema":{"type":"string"}},{"name":"from","in":"path","description":"The index of the starting user to get","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"howMany","in":"path","description":"How many users to get","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUsersResponse"}}}}}}}},"components":{"schemas":{"ListUsersResponse":{"type":"object","properties":{"users":{"type":"array","items":{"$ref":"#/components/schemas/UserSpecs"},"description":"The list of User objects.","nullable":true},"count":{"type":"integer","description":"Total number of User objects.","format":"int32"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Users request."},"UserSpecs":{"type":"object","properties":{"tenant":{"type":"string","description":"Name of the Tenant this user is associated to. Required during \r\nLogin and Registration operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"userID":{"type":"string","description":"User ID. Unique and assigned by the system.\r\nReturned during Login and Get operations. Ignored in other cases.","nullable":true},"userName":{"type":"string","description":"User name. Must be unique. Required during Login and Registration\r\noperations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"eMail":{"type":"string","description":"E-mail address. Required during Registration operations. Used during Update operations. May be used as an alternative to UserName during Login operations. Returned during Get operations. <br> The address is checked via a verification code.","nullable":true},"avatarURL":{"type":"string","description":"URL of the avatar image representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURL":{"type":"string","description":"URL of the avatar 3D model representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURLType":{"type":"string","description":"Additional information about the avatar 3D model URL, e.g. if it's a head-only, full-body avatar, custom model etc. <br> Sample possible values are: <ul> <li><code>readyplayerme</code>: the avatar 3D URL points a half-body ReadyPlayerMe GLB model</li> <li><code>readyplayerme-full</code>: the avatar 3D URL points a full-body ReadyPlayerMe GLB model</li> <li><code>customglb</code>: the avatar 3D URL points to a custom GLB model</li> </ul>","nullable":true},"dontSendInvitationEmail":{"type":"boolean","description":"If ```True``` during a Creation operation, the automatic\r\ninvitation e-mail is not sent, and the temporary password is\r\nreturned as part of the operation response.\r\nUsed during Creation operations. Ignored in other cases.","nullable":true},"referral":{"type":"string","description":"Optional referral URL from which the User reached the registration\r\npage.","nullable":true},"couponCode":{"type":"string","description":"Optional coupon code used by the User during Registration.","nullable":true},"newsletterSubscribed":{"type":"boolean","description":"```True``` if the e-mail address is subscribed to the newsletter.\r\n            Used during Registration and Update operations.\r\n            Returned during Get operations.","nullable":true},"notificationPrefs":{"type":"array","items":{"$ref":"#/components/schemas/NotificationPrefsSpecs"},"description":"List of Notification Preferences objects.\r\nUsed Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"admin":{"type":"boolean","description":"```True``` if the User is an administrator, i.e. can administer\r\n            the tenant they are part of.\r\n            Used during Creation and Update operations by a super administrator.\r\n            Returned during Login and Get operations.","nullable":true},"superAdmin":{"type":"boolean","description":"```True``` if the User is a super administrator, i.e. can\r\n            administer all tenants.\r\n            Returned during Login and Get operations.\r\n            Ignored in other cases.","nullable":true},"numMemori":{"type":"integer","description":"The current number of Memori objects belonging to this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxMemori":{"type":"integer","description":"Maximum number of Memori objects this User can create.\r\nIf ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"monthSessions":{"type":"integer","description":"Number of sessions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User. Valid sessions are performed by a not Giver user with at least one request/response pair. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthDeepThoughtValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxFreeSessions":{"type":"integer","description":"Maximum number of free Memori sessions this User can open per month.\r\nif ```0>``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"nonFreeSessionCost":{"type":"number","description":"The cost of each new session above the max free sessions threshold.","format":"double","nullable":true},"monthCompletions":{"type":"integer","description":"Number of completions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthDeepThoughtCompletions":{"type":"integer","description":"Number of completions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthImportedSize":{"type":"integer","description":"Number of characters imported in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int64","nullable":true},"maxCompletions":{"type":"integer","description":"Maximum number of completions for this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"maxImportSize":{"type":"integer","description":"Maximum number of characters that can imported be by this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int64","nullable":true},"paying":{"type":"boolean","description":"If ```True``` means this User has an actual payment\r\ncontract in effect and non-free sessions (i.e. sessions above\r\nthe max free session threshold) can be performed.","nullable":true},"enableMemoriCreation":{"type":"boolean","description":"```True``` if the User can create new Memori objects.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBoardOfExperts":{"type":"boolean","description":"```True``` if the User can access the Board of Experts feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableDCMIntegration":{"type":"boolean","description":"```True``` if the User access the DCM integration feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBadges":{"type":"boolean","description":"If ```True``` this User accepts DCM outcomes and\r\nconsequently can receive badges in the Open Badge format.\r\nUsed during Creation and Update operations by an administrator.\r\nReturned during Get and Login operations.","nullable":true},"enableDeepThought":{"type":"boolean","description":"```True``` if the User can access the Deep Thought feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableVirtualSpaces":{"type":"boolean","description":"```True``` if the User can access the Virtual Spaces feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"birthDate":{"type":"string","description":"User date of birth. Necessary of age-restricted features, such as\r\nenabling completions or accessing NSFW content.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","format":"date-time","nullable":true},"age":{"type":"integer","description":"Age computed from the birth date.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"tnCAndPPAccepted":{"type":"boolean","description":"Terms & Conditions and Privacy Policy acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False all operations that imply a change are blocked.\r\nMandatory during Registration. Used during Update operations.\r\nReturned during Get operations.","nullable":true},"tnCAndPPAcceptanceDate":{"type":"string","description":"Date of acceptance of Terms & Conditions and Privacy Policy.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"pAndCUAccepted":{"type":"boolean","description":"Profiling & Commercial Use acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False features that require profiling and may imply commercial\r\ncommunication to the User (e.g. Deep Thought) are disabled.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"pAndCUAcceptanceDate":{"type":"string","description":"Date of acceptance of Profiling & Commercial Use.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"magicLinkURL":{"type":"string","description":"Optional magic link URL. If not set a default one is used.\r\nThe URL is invoked appending the Session ID at the end.\r\nUsed during Login and Create operations.\r\nIgnored in other cases.","nullable":true},"redirectTo":{"type":"string","description":"Optional RedirectTo.\r\nIf set the user will be redirected to the specified page.\r\nIgnored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a User object."},"NotificationPrefsSpecs":{"type":"object","properties":{"chatLogExtractionPeriod":{"type":"string","description":"Periodicity of chat log extraction (hourly, daily, weekly or none). When chat log extraction is enabled (i.e. not <code>None</code>) chats performed on Memori owned or managed by the User will be periodically collected and sent via e-mail. Required. <br> Can be one of the following:<ul> <li><code>None</code></li>: no chat log extraction is performed. <li><code>Hourly</code></li>: chat log extraction is performed every hour. <li><code>Hourly</code></li>: chat log extraction is performed daily. <li><code>Hourly</code></li>: chat log extraction is performed weekly. </ul>","nullable":true},"chatLogExtractionMinLines":{"type":"integer","description":"Minimum lines for an extracted chat to be sent via e-mail to\r\nthe User. If ```0``` no filter is applied.\r\nDefault is ```5```.","format":"int32","nullable":true},"memoriID":{"type":"string","description":"Memori ID to which these preferences apply to.\r\nIf ```Null``` these preferences have default value\r\nand apply to all Memori objects not specified with other\r\npreferences.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Notificattion Preferences object."}}}}
````

## Gets a filtered list of existing User objects.

> Access to User objects different than the current logged in user> \
> is granted only to administrative users.

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"paths":{"/api/v2/FilterPwlUsers/{strToken}":{"post":{"tags":["PwlUser"],"summary":"Gets a filtered list of existing User objects.","description":"Access to User objects different than the current logged in user\r\nis granted only to administrative users.","operationId":"PwlUser-FilterUsers","parameters":[{"name":"strToken","in":"path","description":"The login token or API key","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The filter criteria","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterUsersSpecs"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUsersResponse"}}}}}}}},"components":{"schemas":{"FilterUsersSpecs":{"type":"object","properties":{"periodFrom":{"type":"string","description":"The starting date of the filter","format":"date-time","nullable":true},"periodTo":{"type":"string","description":"The end date of the filter","format":"date-time","nullable":true},"tenantName":{"type":"string","description":"The tenant name to filter the users.","nullable":true},"text":{"type":"string","description":"A search query to filter the users","nullable":true},"numberOfResults":{"type":"integer","description":"Optional number of results. If omitted defaults to 5.","format":"int32","nullable":true},"startFrom":{"type":"integer","description":"Optional initial result index, 0-based. If omitted defaults to 0.\r\nUsed for Search, Filter Memories and Memory Hints.\r\nIgnored for Random picking.","format":"int32","nullable":true},"orderBy":{"type":"string","description":"Optional order by field. If omitted defaults to <code>CreationDate</code>. <br> Can be one of the following:<ul> <li><code>CreationDateAscending</code></li>: the results are ordered by creation date in ascending order. <li><code>CreationDateDescending</code></li>: the results are ordered by creation date in descending order. <li><code>MemoriCountAscending</code></li>: the results are ordered by Memori count in ascending order. <li><code>MemoriCountDescending</code></li>: the results are ordered by Memori count in descending order. <li><code>MonthCompletionsAscending</code></li>: the results are ordered by month completions in ascending order. <li><code>MonthCompletionsDescending</code></li>: the results are ordered by month completions in descending order. <li><code>MonthImportSizeAscending</code></li>: the results are ordered by month import size in ascending order. <li><code>MonthImportSizeDescending</code></li>: the results are ordered by month import size in descending order. </ul>","nullable":true}},"additionalProperties":false},"ListUsersResponse":{"type":"object","properties":{"users":{"type":"array","items":{"$ref":"#/components/schemas/UserSpecs"},"description":"The list of User objects.","nullable":true},"count":{"type":"integer","description":"Total number of User objects.","format":"int32"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Users request."},"UserSpecs":{"type":"object","properties":{"tenant":{"type":"string","description":"Name of the Tenant this user is associated to. Required during \r\nLogin and Registration operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"userID":{"type":"string","description":"User ID. Unique and assigned by the system.\r\nReturned during Login and Get operations. Ignored in other cases.","nullable":true},"userName":{"type":"string","description":"User name. Must be unique. Required during Login and Registration\r\noperations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"eMail":{"type":"string","description":"E-mail address. Required during Registration operations. Used during Update operations. May be used as an alternative to UserName during Login operations. Returned during Get operations. <br> The address is checked via a verification code.","nullable":true},"avatarURL":{"type":"string","description":"URL of the avatar image representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURL":{"type":"string","description":"URL of the avatar 3D model representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURLType":{"type":"string","description":"Additional information about the avatar 3D model URL, e.g. if it's a head-only, full-body avatar, custom model etc. <br> Sample possible values are: <ul> <li><code>readyplayerme</code>: the avatar 3D URL points a half-body ReadyPlayerMe GLB model</li> <li><code>readyplayerme-full</code>: the avatar 3D URL points a full-body ReadyPlayerMe GLB model</li> <li><code>customglb</code>: the avatar 3D URL points to a custom GLB model</li> </ul>","nullable":true},"dontSendInvitationEmail":{"type":"boolean","description":"If ```True``` during a Creation operation, the automatic\r\ninvitation e-mail is not sent, and the temporary password is\r\nreturned as part of the operation response.\r\nUsed during Creation operations. Ignored in other cases.","nullable":true},"referral":{"type":"string","description":"Optional referral URL from which the User reached the registration\r\npage.","nullable":true},"couponCode":{"type":"string","description":"Optional coupon code used by the User during Registration.","nullable":true},"newsletterSubscribed":{"type":"boolean","description":"```True``` if the e-mail address is subscribed to the newsletter.\r\n            Used during Registration and Update operations.\r\n            Returned during Get operations.","nullable":true},"notificationPrefs":{"type":"array","items":{"$ref":"#/components/schemas/NotificationPrefsSpecs"},"description":"List of Notification Preferences objects.\r\nUsed Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"admin":{"type":"boolean","description":"```True``` if the User is an administrator, i.e. can administer\r\n            the tenant they are part of.\r\n            Used during Creation and Update operations by a super administrator.\r\n            Returned during Login and Get operations.","nullable":true},"superAdmin":{"type":"boolean","description":"```True``` if the User is a super administrator, i.e. can\r\n            administer all tenants.\r\n            Returned during Login and Get operations.\r\n            Ignored in other cases.","nullable":true},"numMemori":{"type":"integer","description":"The current number of Memori objects belonging to this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxMemori":{"type":"integer","description":"Maximum number of Memori objects this User can create.\r\nIf ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"monthSessions":{"type":"integer","description":"Number of sessions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User. Valid sessions are performed by a not Giver user with at least one request/response pair. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthDeepThoughtValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxFreeSessions":{"type":"integer","description":"Maximum number of free Memori sessions this User can open per month.\r\nif ```0>``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"nonFreeSessionCost":{"type":"number","description":"The cost of each new session above the max free sessions threshold.","format":"double","nullable":true},"monthCompletions":{"type":"integer","description":"Number of completions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthDeepThoughtCompletions":{"type":"integer","description":"Number of completions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthImportedSize":{"type":"integer","description":"Number of characters imported in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int64","nullable":true},"maxCompletions":{"type":"integer","description":"Maximum number of completions for this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"maxImportSize":{"type":"integer","description":"Maximum number of characters that can imported be by this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int64","nullable":true},"paying":{"type":"boolean","description":"If ```True``` means this User has an actual payment\r\ncontract in effect and non-free sessions (i.e. sessions above\r\nthe max free session threshold) can be performed.","nullable":true},"enableMemoriCreation":{"type":"boolean","description":"```True``` if the User can create new Memori objects.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBoardOfExperts":{"type":"boolean","description":"```True``` if the User can access the Board of Experts feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableDCMIntegration":{"type":"boolean","description":"```True``` if the User access the DCM integration feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBadges":{"type":"boolean","description":"If ```True``` this User accepts DCM outcomes and\r\nconsequently can receive badges in the Open Badge format.\r\nUsed during Creation and Update operations by an administrator.\r\nReturned during Get and Login operations.","nullable":true},"enableDeepThought":{"type":"boolean","description":"```True``` if the User can access the Deep Thought feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableVirtualSpaces":{"type":"boolean","description":"```True``` if the User can access the Virtual Spaces feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"birthDate":{"type":"string","description":"User date of birth. Necessary of age-restricted features, such as\r\nenabling completions or accessing NSFW content.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","format":"date-time","nullable":true},"age":{"type":"integer","description":"Age computed from the birth date.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"tnCAndPPAccepted":{"type":"boolean","description":"Terms & Conditions and Privacy Policy acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False all operations that imply a change are blocked.\r\nMandatory during Registration. Used during Update operations.\r\nReturned during Get operations.","nullable":true},"tnCAndPPAcceptanceDate":{"type":"string","description":"Date of acceptance of Terms & Conditions and Privacy Policy.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"pAndCUAccepted":{"type":"boolean","description":"Profiling & Commercial Use acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False features that require profiling and may imply commercial\r\ncommunication to the User (e.g. Deep Thought) are disabled.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"pAndCUAcceptanceDate":{"type":"string","description":"Date of acceptance of Profiling & Commercial Use.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"magicLinkURL":{"type":"string","description":"Optional magic link URL. If not set a default one is used.\r\nThe URL is invoked appending the Session ID at the end.\r\nUsed during Login and Create operations.\r\nIgnored in other cases.","nullable":true},"redirectTo":{"type":"string","description":"Optional RedirectTo.\r\nIf set the user will be redirected to the specified page.\r\nIgnored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a User object."},"NotificationPrefsSpecs":{"type":"object","properties":{"chatLogExtractionPeriod":{"type":"string","description":"Periodicity of chat log extraction (hourly, daily, weekly or none). When chat log extraction is enabled (i.e. not <code>None</code>) chats performed on Memori owned or managed by the User will be periodically collected and sent via e-mail. Required. <br> Can be one of the following:<ul> <li><code>None</code></li>: no chat log extraction is performed. <li><code>Hourly</code></li>: chat log extraction is performed every hour. <li><code>Hourly</code></li>: chat log extraction is performed daily. <li><code>Hourly</code></li>: chat log extraction is performed weekly. </ul>","nullable":true},"chatLogExtractionMinLines":{"type":"integer","description":"Minimum lines for an extracted chat to be sent via e-mail to\r\nthe User. If ```0``` no filter is applied.\r\nDefault is ```5```.","format":"int32","nullable":true},"memoriID":{"type":"string","description":"Memori ID to which these preferences apply to.\r\nIf ```Null``` these preferences have default value\r\nand apply to all Memori objects not specified with other\r\npreferences.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Notificattion Preferences object."}}}}
````


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.aisuru.com/api/backend/pwluser.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
