Slack Profile API

The Profile API from Slack — 3 operation(s) for profile.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

slack-profile-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  version: '1.0'
  title: Slack Admin Access Profile API
  description: "The Slack Admin API is a set of privileged endpoints\x14primarily under admin.* with related SCIM and Audit Logs APIs\x14that lets Enterprise Grid owners and admins automate organization\x11 wide management and governance. It covers user lifecycle (provision, suspend, assign roles), workspace and channel administration across workspaces (create, move, archive channels; manage membership and settings), app governance (approve/deny or allowlist/ban apps and install them to workspaces), invite request handling, and security/compliance controls such as information barriers, session and authentication policies, and org\x11level analytics exports. These APIs require elevated admin scopes and are commonly used to power automated onboarding/offboarding, centralized channel and app controls, and integrations with identity, ITSM, and compliance systems."
tags:
- name: Profile
paths:
  /team.profile.get:
    get:
      tags:
      - Profile
      description: Retrieve a team's profile.
      externalDocs:
        description: API method documentation
        url: https://api.slack.com/methods/team.profile.get
      operationId: getTeamProfileGet
      parameters:
      - name: token
        in: query
        description: 'Authentication token. Requires scope: `users.profile:read`'
        required: true
        schema:
          type: string
      - name: visibility
        in: query
        description: Filter by visibility.
        schema:
          type: string
      responses:
        '200':
          description: Typical success response
          content:
            application/json:
              schema:
                title: team.profile.get success schema
                required:
                - ok
                - profile
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_true'
                  profile:
                    type: object
                    additionalProperties: false
                additionalProperties: false
                description: Schema for successful response from team.profile.get method
              example:
                ok: true
                profile:
                  fields:
                  - hint: Enter the extension to reach your desk
                    id: Xf06054AAA
                    is_hidden: 1
                    label: Phone extension
                    options: null
                    ordering: 0
                    possible_values: null
                    type: text
                  - hint: When you were born
                    id: Xf06054BBB
                    label: Date of birth
                    options: null
                    ordering: 1
                    possible_values: null
                    type: date
                  - hint: Enter a link to your Facebook profile
                    id: Xf06054CCC
                    label: Facebook
                    options: null
                    ordering: 2
                    possible_values: null
                    type: link
                  - hint: Hogwarts, obviously
                    id: Xf06054DDD
                    label: House
                    options: null
                    ordering: 3
                    possible_values:
                    - Gryffindor
                    - Hufflepuff
                    - Ravenclaw
                    - Slytherin
                    type: options_list
                  - hint: Office location (LDAP)
                    id: Xf06054EEE
                    label: Location
                    options:
                      is_protected: 1
                    ordering: 4
                    possible_values: null
                    type: text
                  - hint: The boss
                    id: Xf06054FFF
                    label: Manager
                    options: null
                    ordering: 5
                    possible_values: null
                    type: user
        default:
          description: Typical error response
          content:
            application/json:
              schema:
                title: team.profile.get error schema
                required:
                - error
                - ok
                type: object
                properties:
                  callstack:
                    type: string
                    description: 'Note: PHP callstack is only visible in dev/qa'
                  error:
                    type: string
                    enum:
                    - not_authed
                    - invalid_auth
                    - account_inactive
                    - no_permission
                    - user_is_bot
                    - invalid_arg_name
                    - invalid_array_arg
                    - invalid_charset
                    - invalid_form_data
                    - invalid_post_typ
                    - missing_post_type
                    - team_added_to_org
                    - invalid_json
                    - json_not_object
                    - request_timeou
                    - upgrade_required
                  ok:
                    $ref: '#/components/schemas/defs_ok_false'
                additionalProperties: false
                description: Schema for error response from team.profile.get method
              example:
                error: invalid_auth
                ok: false
      security:
      - slackAuth:
        - users.profile:read
      summary: Slack Get Team Profile Get
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /users.profile.get:
    get:
      tags:
      - Profile
      description: Retrieves a user's profile information.
      externalDocs:
        description: API method documentation
        url: https://api.slack.com/methods/users.profile.get
      operationId: getUsersProfileGet
      parameters:
      - name: token
        in: query
        description: 'Authentication token. Requires scope: `users.profile:read`'
        required: true
        schema:
          type: string
      - name: include_labels
        in: query
        description: Include labels for each ID in custom profile fields
        schema:
          type: boolean
      - name: user
        in: query
        description: User to retrieve profile info for
        schema:
          type: string
      responses:
        '200':
          description: Typical success response
          content:
            application/json:
              schema:
                title: users.profile.get schema
                required:
                - ok
                - profile
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_true'
                  profile:
                    $ref: '#/components/schemas/objs_user_profile'
                additionalProperties: false
                description: Schema for successful response from users.profile.get method
              example:
                ok: true
                profile:
                  avatar_hash: ge3b51ca72de
                  display_name: spengler
                  display_name_normalized: spengler
                  email: spengler@ghostbusters.example.com
                  image_192: https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg
                  image_24: https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg
                  image_32: https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg
                  image_48: https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg
                  image_512: https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg
                  image_72: https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg
                  image_original: https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg
                  real_name: Egon Spengler
                  real_name_normalized: Egon Spengler
                  status_emoji: ':books:'
                  status_expiration: 0
                  status_text: Print is dead
                  team: T012AB3C4
        default:
          description: Typical error response
          content:
            application/json:
              schema:
                title: users.profile.get error schema
                required:
                - error
                - ok
                type: object
                properties:
                  callstack:
                    type: string
                    description: 'Note: PHP callstack is only visible in dev/qa'
                  error:
                    type: string
                    enum:
                    - user_not_found
                    - not_authed
                    - invalid_auth
                    - account_inactive
                    - token_revoked
                    - no_permission
                    - org_login_required
                    - user_is_bot
                    - invalid_arg_name
                    - invalid_array_arg
                    - invalid_charset
                    - invalid_form_data
                    - invalid_post_type
                    - missing_post_type
                    - team_added_to_org
                    - invalid_json
                    - json_not_object
                    - request_timeout
                    - upgrade_required
                    - fatal_error
                  ok:
                    $ref: '#/components/schemas/defs_ok_false'
                additionalProperties: false
                description: Schema for error response from users.profile.get method
              example:
                error: user_not_found
                ok: false
      security:
      - slackAuth:
        - users.profile:read
      summary: Slack Get Users Profile Get
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /users.profile.set:
    post:
      tags:
      - Profile
      description: Set the profile information for a user.
      externalDocs:
        description: API method documentation
        url: https://api.slack.com/methods/users.profile.set
      operationId: postUsersProfileSet
      parameters:
      - name: token
        in: header
        description: 'Authentication token. Requires scope: `users.profile:write`'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Name of a single key to set. Usable only if `profile` is not passed.
                profile:
                  type: string
                  description: Collection of key:value pairs presented as a URL-encoded JSON hash. At most 50 fields may be set. Each field name is limited to 255 characters.
                user:
                  type: string
                  description: ID of user to change. This argument may only be specified by team admins on paid teams.
                value:
                  type: string
                  description: Value to set a single key to. Usable only if `profile` is not passed.
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Name of a single key to set. Usable only if `profile` is not passed.
                profile:
                  type: string
                  description: Collection of key:value pairs presented as a URL-encoded JSON hash. At most 50 fields may be set. Each field name is limited to 255 characters.
                user:
                  type: string
                  description: ID of user to change. This argument may only be specified by team admins on paid teams.
                value:
                  type: string
                  description: Value to set a single key to. Usable only if `profile` is not passed.
      responses:
        '200':
          description: Typical success response
          content:
            application/json:
              schema:
                title: users.profile.set schema
                required:
                - ok
                - profile
                - username
                type: object
                properties:
                  email_pending:
                    type: string
                    format: email
                  ok:
                    $ref: '#/components/schemas/defs_ok_true'
                  profile:
                    $ref: '#/components/schemas/objs_user_profile'
                  username:
                    type: string
                additionalProperties: false
                description: Schema for successful response from users.profile.set method
              example:
                ok: true
                profile:
                  avatar_hash: ge3b51ca72de
                  display_name: spengler
                  display_name_normalized: spengler
                  email: spengler@ghostbusters.example.com
                  image_192: https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg
                  image_24: https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg
                  image_32: https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg
                  image_48: https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg
                  image_512: https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg
                  image_72: https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg
                  real_name: Egon Spengler
                  real_name_normalized: Egon Spengler
                  status_emoji: ':books:'
                  status_expiration: 0
                  status_text: Print is dead
                  team: T012AB3C4
        default:
          description: Typical error response
          content:
            application/json:
              schema:
                title: users.profile.set error schema
                required:
                - error
                - ok
                type: object
                properties:
                  callstack:
                    type: string
                    description: 'Note: PHP callstack is only visible in dev/qa'
                  error:
                    type: string
                    enum:
                    - reserved_name
                    - invalid_profile
                    - profile_set_failed
                    - not_admin
                    - not_app_admin
                    - cannot_update_admin_user
                    - not_authed
                    - invalid_auth
                    - account_inactive
                    - token_revoked
                    - no_permission
                    - org_login_required
                    - user_is_bot
                    - invalid_arg_name
                    - invalid_array_arg
                    - invalid_charset
                    - invalid_form_data
                    - invalid_post_type
                    - missing_post_type
                    - team_added_to_org
                    - invalid_json
                    - json_not_object
                    - request_timeout
                    - upgrade_required
                    - fatal_error
                  ok:
                    $ref: '#/components/schemas/defs_ok_false'
                additionalProperties: false
                description: Schema for error response from users.profile.set method
              example:
                error: invalid_profile
                ok: false
      security:
      - slackAuth:
        - users.profile:write
      summary: Slack Post Users Profile Set
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK