user type

A user object contains information about a member.

    "ok": true,
    "user": {
        "id": "W012A3CDE",
        "team_id": "T012AB3C4",
        "name": "spengler",
        "deleted": false, /*may not appear on all user objects*/
        "color": "9f69e7",
        "real_name": "Egon Spengler",
        "tz": "America/New_York",
        "tz_label": "Eastern Daylight Time",
        "tz_offset": -14400,
        "profile": {
            "avatar_hash": "ge3b51ca72de",
            "status_text": "Print is dead",
            "status_emoji": ":books:",
            "status_expiration": 1502138999,
            "real_name": "Egon Spengler",
            "display_name": "spengler",
            "real_name_normalized": "Egon Spengler",
            "display_name_normalized": "spengler",
            "email": "",
            "image_original": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
            "image_24": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
            "image_32": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
            "image_48": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
            "image_72": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
            "image_192": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
            "image_512": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
            "team": "T012AB3C4"
        "is_admin": true,
        "is_owner": false,
        "is_primary_owner": false,
        "is_restricted": false,
        "is_ultra_restricted": false,
        "is_bot": false,
        "is_stranger": false,
        "updated": 1502138686,
        "is_app_user": false,
        "has_2fa": false,
        "locale": "en-US"


The name parameter once indicated the "username" for this user, without a leading "@" sign.

The function of usernames has fundamentally changed. To prepare for a certain future where usernames do not exist, focus on the display_name in profile instead to address a user and always identify them by their id and team_id.

display_name_normalized and real_name_normalized filter out any non-Latin characters typically allowed in display_name and real_name.

Standard fields

The id field is a string identifier for this team member. It is only unique to the workspace/team containing the user. Use this field instead of the name field when storing related data or when specifying the user in API requests. Though the ID field usually begins with U, it is also possible to encounter user IDs beginning with W. We recommend considering the string an opaque value. Read more about recent changes to user ID strings.

For deactivated users, deleted will be true. The deleted field may not appear for non-deleted users.

The color field is used in some clients to display a colored username.

Data that has not been supplied may not be present at all, may be null or may contain the empty string (""). A user's custom profile fields may be discovered using users.profile.get.

The image_* fields will always contain https URLs to square, web-viewable images (GIFs, JPEGs or PNGs).

The updated field is a unix timestamp when the user was last updated.

is_restricted indicates the user is a multi-channel guest. is_ultra_restricted indicates they are a single channel guest. Please consult this helpdesk guide to Slack user roles for more information.

The has_2fa field describes whether two-step verification is enabled for this user. This field will always be displayed if you are looking at your own user information. If you are looking at another user's information this field will only be displayed if you are Workspace Admin or owner.

The two_factor_type field is either app or sms. It will only be present if has_2fa is true.

Bot users may contain a always_active field under profile, indicating whether the bot user is active in a way that overrides traditional presence rules. The presence docs tell the whole story.

User time zone and locale

Those users with a provided timezone will have populated tz, tz_label, and tz_offset fields. tz provides a somewhat human readable string for the geographic region like "America/Los_Angeles". tz_label is a string describing the name of that timezone (like "Pacific Standard Time"). tz_offset is a signed integer indicating the number of seconds to offset UTC time by.

Read about the new locale attribute here.

A user's profile

The profile object contains as much information as the user has supplied in the default profile fields: first_name, last_name, real_name, display_name, email, and the image_* fields. We only guarantee inclusion of the image_* fields.

Accessing email addresses
The OAuth scope is now required to access the email field in user objects returned by the users.list and web API methods. users:read is no longer a sufficient scope for this data field. Learn more.

Enterprise Grid user objects

Users belonging to an Enterprise Grid workspace have a enterprise_user node attached containing these fields:

  • id - this user's ID, which might start with U or W; IDs beginning with U are unique only to a workspace. IDs beginning with W are unique for an entire Enterprise Grid organization and may represent the user on multiple workspaces within it.
  • enterprise_id - the unique ID for this particular Enterprise Organization
  • enterprise_name - the name of this umbrella organization
  • is_admin - a boolean value indicating whether this user administers this enterprise
  • is_owner - a boolean value indicating whether this user is the owner of this enterprise
  • teams - an array of team IDs within the containing enterprise that the user is a member of

Some enterprise grid users also have a kind of dual identity — a local team-centric user ID beginning with U as well as a enterprise wide user ID beginning with W, called the enterprise user ID.

In most cases these IDs can be used interchangeably but we strongly prefer using the enterprise user ID whenever possible.

See our Enterprise grid documentation for more detail.

User objects from workspaces connected through shared channels

Shared channels may contain channel members from multiple workspaces. Your app can retrieve information about these users using and other API Methods. When a user belongs to a different workspace than the workspace/team associated with your app's token and isn't in any shared channels that your app can see, they will have an is_stranger attribute set to true.

Users that are not from a foreign workspace or that are in a shared channel your app has access to will either have is_stranger set to false or the attribute omitted entirely.