Users
A User represents a human or system/service user with the ability to connect to Files.com via any of the available connectivity methods (unless restricted to specific protocols).
Users are associated with API Keys, SSH (SFTP) Keys, Notifications, Permissions, and Group memberships.
Authentication
The authentication_method property on a User determines exactly how that user can login and authenticate to their Files.com account. Files.com offers a variety of authentication methods to ensure flexibility, security, migration, and compliance.
These authentication methods can be configured during user creation and can be modified at any time by site administrators. The meanings of the available values are as follows:
password- Allows authentication via a password. If API Keys or SSH (SFTP) Keys are also configured, those can be used instead of the password. If Two Factor Authentication (2FA) methods are also configured, a valid 2nd factor is required in addition to the password.email_signup- When set upon user creation, an email will be sent to the new user with a link for them to create their password. Once the user has created their password, their authentication type will change topassword.sso- Allows authentication via a linked Single Sign On provider. If API Keys or SSH (SFTP) Keys are also configured, those can be used instead of Single Sign On. If Two Factor Authentication (2FA) methods are also configured, a valid 2nd factor is required in addition to Single Sign On. When using this method, you must also provide a validsso_strategy_idto associate the User to the appropriate SSO provider.password_with_imported_hash- Works like thepasswordmethod but allows importing a hashed password in MD5, SHA-1, or SHA-256 format. Provide the imported hash in the fieldimported_password_hash. Upon first use, the password will be converted to Files.com's internal storage format and the authentication type will change topassword. Typically only used when migrating to Files.com from another MFT solution.none- Does not allow authentication via username and password, but does allow authentication via API Key or SSH (SFTP) Key. Typically only used for service users.password_and_ssh_key- Allows authentication only by providing a password and also a valid SSH (SFTP) Key in a single attempt. If API Keys are also configured, those can be used instead of the password and key combination. This method only works with (typically enterprise) SSH/SFTP clients capable of sending both authentication methods at once. Typically only used for service users.
List Users
SDK Method
Files::User.list
Return Object
List<User>
Authorization Requirement
Requires either a Site-Wide API key or User API key or session from a User with Folder Admin permissions.
Method Arguments
| Argument | Description |
|---|---|
| ids string | comma-separated list of User IDs |
| include_parent_site_users boolean | Include users from the parent site. |
| search string | Searches for partial matches of name, username, or email. |
Additional Arguments
Show User
SDK Method
Files::User.find
Return Object
User
Authorization Requirement
Requires either a Site-Wide API key or User API key or session from a User with Folder Admin permissions.
Method Arguments
| Argument | Description |
|---|---|
| id int64 Required | User ID. |
Create User
SDK Method
Files::User.create
Return Object
User
Authorization Requirement
Available to all authenticated keys or sessions.
Method Arguments
| Argument | Default | Description |
|---|---|---|
| avatar_file file | An image file for your user avatar. See Attaching Files to API Requests. | |
| avatar_delete boolean | If true, the avatar will be deleted. | |
| change_password string | Used for changing a password on an existing user. | |
| change_password_confirmation string | Optional, but if provided, we will ensure that it matches the value sent in change_password. | |
| email string | User's email. | |
| grant_permission string | Permission to grant on the User Root upon user creation. Can be blank or full, read, write, list, read+write, or list+write | |
| group_id int64 | Group ID to associate this user with. | |
| group_ids string | A list of group ids to associate this user with. Comma delimited. | |
| imported_password_hash string | Pre-calculated hash of the user's password. If supplied, this will be used to authenticate the user on first login. Supported hash methods are MD5, SHA1, and SHA256. | |
| password string | User password. | |
| password_confirmation string | Optional, but if provided, we will ensure that it matches the value sent in password. | |
| announcements_read boolean | Signifies that the user has read all the announcements in the UI. | |
| ai_assistant_personality_id int64 | AI Assistant Personality ID assigned directly to this user, if any. | |
| allowed_ips string | A list of allowed IPs if applicable. Newline delimited | |
| attachments_permission boolean | false | DEPRECATED: If true, the user can user create Bundles (aka Share Links). Use the bundle permission instead. |
| authenticate_until string | Scheduled Date/Time at which user will be deactivated | |
| authentication_method string | "password" | How is this user authenticated? Possible values: password, sso, none, email_signup, password_with_imported_hash, password_and_ssh_key |
| billing_permission boolean | false | Allow this user to perform operations on the account, payments, and invoices? |
| bypass_user_lifecycle_rules boolean | false | Exempt this user from user lifecycle rules? |
| bypass_site_allowed_ips boolean | false | Allow this user to skip site-wide IP blacklists? |
| dav_permission boolean | true | Can the user connect with WebDAV? |
| desktop_configuration_profile_id int64 | Desktop Configuration Profile ID assigned directly to this user, if any. | |
| default_workspace_id int64 | Workspace ID the user should land in by default when more than one Workspace is available. | |
| disabled boolean | false | Is user disabled? Disabled users cannot log in, and do not count for billing purposes. Users can be automatically disabled after an inactivity period via a Site setting or schedule to be deactivated after specific date. |
| filesystem_layout string | "site_root" | File system layout Possible values: site_root, user_root, partner_root, integration_centric, workspace_root |
| ftp_permission boolean | true | Can the user access with FTP/FTPS? |
| header_text string | Text to display to the user in the header of the UI | |
| integration_centric_profile_id int64 | Integration Centric Profile ID assigned directly to this user, if any. | |
| language string | "" | Preferred language |
| notification_daily_send_time int64 | Hour of the day at which daily notifications should be sent. Can be in range 0 to 23 | |
| name string | User's full name | |
| company string | User's company | |
| notes string | Any internal notes on the user | |
| office_integration_enabled boolean | true | Enable integration with Office for the web? |
| partner_admin boolean | false | Is this user a Partner administrator? |
| partner_id int64 | Partner ID if this user belongs to a Partner | |
| password_validity_days int64 | 0 | Number of days to allow user to use the same password |
| primary_group_id int64 | Primary group ID for Group Admin scoping | |
| readonly_site_admin boolean | false | Is the user an allowed to view all (non-billing) site configuration for this site? |
| receive_admin_alerts boolean | false | Deprecated. Use notify_on_all_site_warnings and granular failure notification preferences instead. |
| notify_on_all_site_warnings boolean | false | Should the user receive site warnings via email? |
| notify_on_all_sso_failures boolean | false | Should the user receive sso/scim/ldap configuration/sync failures via email? |
| notify_on_all_user_security_events boolean | false | Should the user receive user security events via email? |
| notify_on_all_pending_work_failures boolean | false | Should the user receive pending work failures via email? |
| notify_on_all_siem_http_destination_failures boolean | false | Should the user receive siem failures via email? |
| notify_on_all_sync_failures boolean | false | Should the user receive sync failures via email? |
| notify_on_all_automation_failures boolean | false | Should the user receive automation failures via email? |
| notify_on_all_expectation_failures boolean | false | Should the user receive expectation failures and misses via email? |
| require_login_by string | Require user to login by specified date otherwise it will be disabled. | |
| require_password_change boolean | false | Is a password change required upon next user login? |
| responsible_group_id int64 | ID of the internal Group responsible for this Partner User, overriding the Partner default. | |
| responsible_user_id int64 | ID of the internal User responsible for this Partner User, overriding the Partner default. | |
| restapi_permission boolean | true | Can this user access the Web app, Desktop app, SDKs, or REST API? (All of these tools use the API internally, so this is one unified permission set.) |
| self_managed boolean | true | Does this user manage it's own credentials or is it a shared/bot user? |
| sftp_permission boolean | true | Can the user access with SFTP? |
| site_admin boolean | false | Is the user an administrator for this site? |
| skip_welcome_screen boolean | false | Skip Welcome page in the UI? |
| ssl_required string | "use_system_setting" | SSL required setting Possible values: use_system_setting, always_require, never_require |
| sso_strategy_id int64 | SSO (Single Sign On) strategy ID for the user, if applicable. | |
| subscribe_to_newsletter boolean | false | Is the user subscribed to the newsletter? |
| require_2fa string | "use_system_setting" | 2FA required setting. use_system_setting uses the site-wide setting, including SSO exemptions. always_require and never_require override the site-wide setting when user-level overrides are allowed.Possible values: use_system_setting, always_require, never_require |
| tags string | Comma-separated list of Tags for this user. Tags are used for other features, such as UserLifecycleRules, which can target specific tags. Tags must only contain lowercase letters, numbers, and hyphens. | |
| time_zone string | "Eastern Time (US & Canada)" | User time zone |
| user_root string | "" | If filesystem layout is user_root, this path is the root path the user is fixed to for all interfaces. If the filesystem layout is site_root or partner_root, this acts as a root folder only for FTP and SFTP (SFTP applicability also requires a site-wide setting to be set). For partner_root layout, this path is relative to the Partner root folder for all callers and blank opts out of an additional protocol root. In this situation, this path is not applied to the API, Desktop, or Web interface. |
| user_home string | "" | Home folder for FTP/SFTP. For users with the partner_root filesystem layout, this path is relative to the Partner root folder. In all other cases, it is an absolute path. Only applies to FTP and SFTP, and not any other interface. |
| workspace_admin boolean | false | Is the user a Workspace administrator? Applicable only to the workspace ID related to this user, if one is set. |
| username string Required | User's username | |
| workspace_id int64 | 0 | Workspace ID |
Unlock user who has been locked out due to failed logins
SDK Method
user.unlock
Return Object
nil
Authorization Requirement
Requires either a Site-Wide API key or User API key or session from a User with Site Admin permissions.
Resend user welcome email
SDK Method
user.resend_welcome_email
Return Object
nil
Authorization Requirement
Requires either a Site-Wide API key or User API key or session from a User with Site Admin permissions.
Trigger 2FA Reset process for user who has lost access to their existing 2FA methods
SDK Method
user.user_2fa_reset
Return Object
nil
Authorization Requirement
Requires either a Site-Wide API key or User API key or session from a User with Site Admin permissions.
The X-Files-Reauthentication header is required for all requests to this endpoint.
Update User
SDK Method
user.update
Return Object
User
Authorization Requirement
Not available to user API keys or sessions from users that are marked as Shared/Bot users.
The X-Files-Reauthentication header is required for any requests including the following parameters: password, change_password, email, site_admin.
Method Arguments
| Argument | Description |
|---|---|
| avatar_file file | An image file for your user avatar. See Attaching Files to API Requests. |
| avatar_delete boolean | If true, the avatar will be deleted. |
| change_password string | Used for changing a password on an existing user. |
| change_password_confirmation string | Optional, but if provided, we will ensure that it matches the value sent in change_password. |
| email string | User's email. |
| grant_permission string | Permission to grant on the User Root upon user creation. Can be blank or full, read, write, list, read+write, or list+write |
| group_id int64 | Group ID to associate this user with. |
| group_ids string | A list of group ids to associate this user with. Comma delimited. |
| imported_password_hash string | Pre-calculated hash of the user's password. If supplied, this will be used to authenticate the user on first login. Supported hash methods are MD5, SHA1, and SHA256. |
| password string | User password. |
| password_confirmation string | Optional, but if provided, we will ensure that it matches the value sent in password. |
| announcements_read boolean | Signifies that the user has read all the announcements in the UI. |
| ai_assistant_personality_id int64 | AI Assistant Personality ID assigned directly to this user, if any. |
| allowed_ips string | A list of allowed IPs if applicable. Newline delimited |
| attachments_permission boolean | DEPRECATED: If true, the user can user create Bundles (aka Share Links). Use the bundle permission instead. |
| authenticate_until string | Scheduled Date/Time at which user will be deactivated |
| authentication_method string | How is this user authenticated? Possible values: password, sso, none, email_signup, password_with_imported_hash, password_and_ssh_key |
| billing_permission boolean | Allow this user to perform operations on the account, payments, and invoices? |
| bypass_user_lifecycle_rules boolean | Exempt this user from user lifecycle rules? |
| bypass_site_allowed_ips boolean | Allow this user to skip site-wide IP blacklists? |
| dav_permission boolean | Can the user connect with WebDAV? |
| desktop_configuration_profile_id int64 | Desktop Configuration Profile ID assigned directly to this user, if any. |
| default_workspace_id int64 | Workspace ID the user should land in by default when more than one Workspace is available. |
| disabled boolean | Is user disabled? Disabled users cannot log in, and do not count for billing purposes. Users can be automatically disabled after an inactivity period via a Site setting or schedule to be deactivated after specific date. |
| filesystem_layout string | File system layout Possible values: site_root, user_root, partner_root, integration_centric, workspace_root |
| ftp_permission boolean | Can the user access with FTP/FTPS? |
| header_text string | Text to display to the user in the header of the UI |
| integration_centric_profile_id int64 | Integration Centric Profile ID assigned directly to this user, if any. |
| language string | Preferred language |
| notification_daily_send_time int64 | Hour of the day at which daily notifications should be sent. Can be in range 0 to 23 |
| name string | User's full name |
| company string | User's company |
| notes string | Any internal notes on the user |
| office_integration_enabled boolean | Enable integration with Office for the web? |
| partner_admin boolean | Is this user a Partner administrator? |
| partner_id int64 | Partner ID if this user belongs to a Partner |
| password_validity_days int64 | Number of days to allow user to use the same password |
| primary_group_id int64 | Primary group ID for Group Admin scoping |
| readonly_site_admin boolean | Is the user an allowed to view all (non-billing) site configuration for this site? |
| receive_admin_alerts boolean | Deprecated. Use notify_on_all_site_warnings and granular failure notification preferences instead. |
| notify_on_all_site_warnings boolean | Should the user receive site warnings via email? |
| notify_on_all_sso_failures boolean | Should the user receive sso/scim/ldap configuration/sync failures via email? |
| notify_on_all_user_security_events boolean | Should the user receive user security events via email? |
| notify_on_all_pending_work_failures boolean | Should the user receive pending work failures via email? |
| notify_on_all_siem_http_destination_failures boolean | Should the user receive siem failures via email? |
| notify_on_all_sync_failures boolean | Should the user receive sync failures via email? |
| notify_on_all_automation_failures boolean | Should the user receive automation failures via email? |
| notify_on_all_expectation_failures boolean | Should the user receive expectation failures and misses via email? |
| require_login_by string | Require user to login by specified date otherwise it will be disabled. |
| require_password_change boolean | Is a password change required upon next user login? |
| responsible_group_id int64 | ID of the internal Group responsible for this Partner User, overriding the Partner default. |
| responsible_user_id int64 | ID of the internal User responsible for this Partner User, overriding the Partner default. |
| restapi_permission boolean | Can this user access the Web app, Desktop app, SDKs, or REST API? (All of these tools use the API internally, so this is one unified permission set.) |
| self_managed boolean | Does this user manage it's own credentials or is it a shared/bot user? |
| sftp_permission boolean | Can the user access with SFTP? |
| site_admin boolean | Is the user an administrator for this site? |
| skip_welcome_screen boolean | Skip Welcome page in the UI? |
| ssl_required string | SSL required setting Possible values: use_system_setting, always_require, never_require |
| sso_strategy_id int64 | SSO (Single Sign On) strategy ID for the user, if applicable. |
| subscribe_to_newsletter boolean | Is the user subscribed to the newsletter? |
| require_2fa string | 2FA required setting. use_system_setting uses the site-wide setting, including SSO exemptions. always_require and never_require override the site-wide setting when user-level overrides are allowed.Possible values: use_system_setting, always_require, never_require |
| tags string | Comma-separated list of Tags for this user. Tags are used for other features, such as UserLifecycleRules, which can target specific tags. Tags must only contain lowercase letters, numbers, and hyphens. |
| time_zone string | User time zone |
| user_root string | If filesystem layout is user_root, this path is the root path the user is fixed to for all interfaces. If the filesystem layout is site_root or partner_root, this acts as a root folder only for FTP and SFTP (SFTP applicability also requires a site-wide setting to be set). For partner_root layout, this path is relative to the Partner root folder for all callers and blank opts out of an additional protocol root. In this situation, this path is not applied to the API, Desktop, or Web interface. |
| user_home string | Home folder for FTP/SFTP. For users with the partner_root filesystem layout, this path is relative to the Partner root folder. In all other cases, it is an absolute path. Only applies to FTP and SFTP, and not any other interface. |
| workspace_admin boolean | Is the user a Workspace administrator? Applicable only to the workspace ID related to this user, if one is set. |
| username string | User's username |
| workspace_id int64 | Workspace ID |
| clear_2fa boolean | If true when changing authentication_method from password to sso, remove all two-factor methods. Ignored in all other cases. |
| convert_to_partner_user boolean | Required when assigning a Partner to an existing non-Partner user. If true, convert the user by assigning the partner_id provided. |
Delete User
SDK Method
user.delete
Return Object
nil
Authorization Requirement
Requires either a Site-Wide API key or User API key or session from a User with Site Admin permissions.
The X-Files-Reauthentication header is required for all requests to this endpoint.
Method Arguments
| Argument | Description |
|---|---|
| new_owner_id int64 | Provide a User ID here to transfer ownership of certain resources such as Automations and Share Links (Bundles) to that new user. |
The User Object
Some of the methods above return a User object. The attributes of this object are listed below.
| Attribute | Description |
|---|---|
| id int64 | User ID |
| username string | User's username |
| admin_group_ids array(int64) | List of group IDs of which this user is an administrator |
| allowed_ips string | A list of allowed IPs if applicable. Newline delimited |
| attachments_permission boolean | If true, the user can user create Bundles (aka Share Links). Use the bundle permission instead. |
| api_keys_count int64 | Number of API keys associated with this user |
| authenticate_until date-time | Scheduled Date/Time at which user will be deactivated |
| authentication_method string | How is this user authenticated? Possible values: password, sso, none, email_signup, password_with_imported_hash, password_and_ssh_key |
| avatar_url string | URL holding the user's avatar |
| billable boolean | Is this a billable user record? |
| billing_permission boolean | Allow this user to perform operations on the account, payments, and invoices? |
| bypass_site_allowed_ips boolean | Allow this user to skip site-wide IP blacklists? |
| bypass_user_lifecycle_rules boolean | Exempt this user from user lifecycle rules? |
| created_at date-time | When this user was created |
| dav_permission boolean | Can the user connect with WebDAV? |
| disabled boolean | Is user disabled? Disabled users cannot log in, and do not count for billing purposes. Users can be automatically disabled after an inactivity period via a Site setting or schedule to be deactivated after specific date. |
| disabled_expired_or_inactive boolean | Computed property that returns true if user disabled or expired or inactive. |
| ai_assistant_personality_id int64 | AI Assistant Personality ID assigned directly to this user, if any. |
| desktop_configuration_profile_id int64 | Desktop Configuration Profile ID assigned directly to this user, if any. |
| integration_centric_profile_id int64 | Integration Centric Profile ID assigned directly to this user, if any. |
| email | User email address |
| filesystem_layout string | File system layout Possible values: site_root, user_root, partner_root, integration_centric, workspace_root |
| first_login_at date-time | User's first login time |
| ftp_permission boolean | Can the user access with FTP/FTPS? |
| group_ids string | Comma-separated list of group IDs of which this user is a member |
| header_text string | Text to display to the user in the header of the UI |
| language string | Preferred language |
| last_login_at date-time | User's most recent login time via any protocol |
| last_web_login_at date-time | User's most recent login time via web |
| last_ftp_login_at date-time | User's most recent login time via FTP |
| last_sftp_login_at date-time | User's most recent login time via SFTP |
| last_dav_login_at date-time | User's most recent login time via WebDAV |
| last_desktop_login_at date-time | User's most recent login time via Desktop app |
| last_restapi_login_at date-time | User's most recent login time via Rest API |
| last_api_use_at date-time | User's most recent API use time |
| last_active_at date-time | User's most recent activity time, which is the latest of most recent login, most recent API use, enablement, or creation |
| last_protocol_cipher string | The most recent protocol and cipher used |
| lockout_expires date-time | Time in the future that the user will no longer be locked out if applicable |
| name string | User's full name |
| company string | User's company |
| notes string | Any internal notes on the user |
| notification_daily_send_time int64 | Hour of the day at which daily notifications should be sent. Can be in range 0 to 23 |
| office_integration_enabled boolean | Enable integration with Office for the web? |
| partner_admin boolean | Is this user a Partner administrator? |
| partner_id int64 | Partner ID if this user belongs to a Partner |
| partner_name string | Name of the Partner if this user belongs to a Partner |
| password_set_at date-time | Last time the user's password was set |
| password_validity_days int64 | Number of days to allow user to use the same password |
| primary_group_id int64 | Primary group ID for Group Admin scoping |
| public_keys_count int64 | Number of public keys associated with this user |
| receive_admin_alerts boolean | Deprecated. Use notify_on_all_site_warnings and granular failure notification preferences instead. |
| notify_on_all_site_warnings boolean | Should the user receive site warnings via email? |
| notify_on_all_sso_failures boolean | Should the user receive sso/scim/ldap configuration/sync failures via email? |
| notify_on_all_user_security_events boolean | Should the user receive user security events via email? |
| notify_on_all_pending_work_failures boolean | Should the user receive pending work failures via email? |
| notify_on_all_siem_http_destination_failures boolean | Should the user receive siem failures via email? |
| notify_on_all_sync_failures boolean | Should the user receive sync failures via email? |
| notify_on_all_automation_failures boolean | Should the user receive automation failures via email? |
| notify_on_all_expectation_failures boolean | Should the user receive expectation failures and misses via email? |
| require_2fa string | 2FA required setting. use_system_setting uses the site-wide setting, including SSO exemptions. always_require and never_require override the site-wide setting when user-level overrides are allowed.Possible values: use_system_setting, always_require, never_require |
| require_login_by date-time | Require user to login by specified date otherwise it will be disabled. |
| active_2fa boolean | Is 2fa active for the user? |
| require_password_change boolean | Is a password change required upon next user login? |
| password_expired boolean | Is user's password expired? |
| responsible_group_id int64 | ID of the internal Group responsible for this Partner User, overriding the Partner default. |
| responsible_user_id int64 | ID of the internal User responsible for this Partner User, overriding the Partner default. |
| readonly_site_admin boolean | Is the user an allowed to view all (non-billing) site configuration for this site? |
| restapi_permission boolean | Can this user access the Web app, Desktop app, SDKs, or REST API? (All of these tools use the API internally, so this is one unified permission set.) |
| self_managed boolean | Does this user manage it's own credentials or is it a shared/bot user? |
| sftp_permission boolean | Can the user access with SFTP? |
| site_admin boolean | Is the user an administrator for this site? |
| workspace_admin boolean | Is the user a Workspace administrator? Applicable only to the workspace ID related to this user, if one is set. |
| site_id int64 | Site ID |
| workspace_id int64 | Workspace ID |
| default_workspace_id int64 | Workspace ID the user should land in by default when more than one Workspace is available. |
| skip_welcome_screen boolean | Skip Welcome page in the UI? |
| ssl_required string | SSL required setting Possible values: use_system_setting, always_require, never_require |
| sso_strategy_id int64 | SSO (Single Sign On) strategy ID for the user, if applicable. |
| subscribe_to_newsletter boolean | Is the user subscribed to the newsletter? |
| externally_managed boolean | Is this user managed by a SsoStrategy? |
| tags string | Comma-separated list of Tags for this user. Tags are used for other features, such as UserLifecycleRules, which can target specific tags. Tags must only contain lowercase letters, numbers, and hyphens. |
| time_zone string | User time zone |
| type_of_2fa string | Type(s) of 2FA methods in use, for programmatic use. Will be either sms, totp, webauthn, yubi, email, or multiple values sorted alphabetically and joined by an underscore. Does not specify whether user has more than one of a given method. |
| type_of_2fa_for_display string | Type(s) of 2FA methods in use, formatted for displaying in the UI. Unlike type_of_2fa, this value will make clear when a user has more than 1 of the same type of method. |
| user_root string | If filesystem layout is user_root, this path is the root path the user is fixed to for all interfaces. If the filesystem layout is site_root or partner_root, this acts as a root folder only for FTP and SFTP (SFTP applicability also requires a site-wide setting to be set). For partner_root layout, this path is relative to the Partner root folder for all callers and blank opts out of an additional protocol root. In this situation, this path is not applied to the API, Desktop, or Web interface. |
| user_home string | Home folder for FTP/SFTP. For users with the partner_root filesystem layout, this path is relative to the Partner root folder. In all other cases, it is an absolute path. Only applies to FTP and SFTP, and not any other interface. |
| days_remaining_until_password_expire int64 | Number of days remaining until password expires |
| password_expire_at date-time | Password expiration datetime |