Slack Admin API

The Slack Admin API is a set of privileged endpointsprimarily under admin.* with related SCIM and Audit Logs APIsthat lets Enterprise Grid owners and admins automate organizationwide management and governance.

OpenAPI Specification

slack-admin-openapi.yml Raw ↑
openapi: 3.1.0
info:
  version: "1.0"
  title: Slack Admin 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."
paths:
  /admin.apps.approve:
    post:
      tags:
      - Administrative
      - Applications
      - Approve
      - Post
      description: Approve an app for installation on a workspace.
      externalDocs:
        description: API method documentation
        url: https://api.slack.com/methods/admin.apps.approve
      operationId: postAdminAppsApprove
      parameters:
      - name: token
        in: header
        description: 'Authentication token. Requires scope: `admin.apps:write`'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                app_id:
                  type: string
                  description: The id of the app to approve.
                request_id:
                  type: string
                  description: The id of the request to approve.
                team_id:
                  type: string
          application/json:
            schema:
              type: object
              properties:
                app_id:
                  type: string
                  description: The id of the app to approve.
                request_id:
                  type: string
                  description: The id of the request to approve.
                team_id:
                  type: string
      responses:
        '200':
          description: Typical success response
          content:
            application/json:
              schema:
                title: Default success template
                required:
                - ok
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_true'
                additionalProperties: true
                description: >-
                  This method either only returns a brief _OK_ response or a
                  verbose schema is not available for this method.
              example:
                ok: true
        default:
          description: Typical error response
          content:
            application/json:
              schema:
                title: Default error template
                required:
                - ok
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_false'
                additionalProperties: true
                description: >-
                  This method either only returns a brief _not OK_ response or a
                  verbose schema is not available for this method.
              example:
                error: invalid_auth
                ok: false
      security:
      - slackAuth:
        - admin.apps:write
      summary: Slack Post Admin Apps Approve
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /admin.apps.approved.list:
    get:
      tags:
      - Administrative
      - Applications
      - Approved
      - Get
      - Lists
      description: List approved apps for an org or workspace.
      externalDocs:
        description: API method documentation
        url: https://api.slack.com/methods/admin.apps.approved.list
      operationId: getAdminAppsApprovedList
      parameters:
      - name: token
        in: query
        description: 'Authentication token. Requires scope: `admin.apps:read`'
        required: true
        schema:
          type: string
      - name: limit
        in: query
        description: >-
          The maximum number of items to return. Must be between 1 - 1000 both
          inclusive.
        schema:
          type: integer
      - name: cursor
        in: query
        description: >-
          Set `cursor` to `next_cursor` returned by the previous call to list
          items in the next page
        schema:
          type: string
      - name: team_id
        in: query
        schema:
          type: string
      - name: enterprise_id
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Typical success response
          content:
            application/json:
              schema:
                title: Default success template
                required:
                - ok
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_true'
                additionalProperties: true
                description: >-
                  This method either only returns a brief _OK_ response or a
                  verbose schema is not available for this method.
              example:
                approved_apps:
                - app:
                    additional_info: ''
                    app_directory_url: >-
                      https://myteam.enterprise.slack.com/apps/A0W7UKG8E-my-test-app
                    app_homepage_url: https://www.slack.com
                    description: test app
                    help_url: https://www.slack.com
                    icons:
                      image_1024: https://3026743124446w96_2bd4ea1ad1f89a23c242_1024.png
                      image_128: https://30267341249446w6_2bd4ea1ad1f89a23c242_128.png
                      image_192: https://30267431249446w6_2bd4ea1ad1f89a23c242_192.png
                      image_32: https://302674312496446w_2bd4ea1ad1f89a23c242_32.png
                      image_36: https://302674312496446w_2bd4ea1ad1f89a23c242_36.png
                      image_48: https://302674312496446w_2bd4ea1ad1f89a23c242_48.png
                      image_512: https://30267431249446w6_2bd4ea1ad1f89a23c242_512.png
                      image_64: https://302674312496446w_2bd4ea1ad1f89a23c242_64.png
                      image_72: https://302674312496446w_2bd4ea1ad1f89a23c242_72.png
                      image_96: https://302674312496446w_2bd4ea1ad1f89a23c242_96.png
                      image_original: >-
                        https://302674446w12496_2bd4ea1ad1f89a23c242_original.png
                    id: A0W7UKG8E
                    is_app_directory_approved: false
                    is_internal: false
                    name: My Test App
                    privacy_policy_url: https://www.slack.com
                  date_updated: 1574296707
                  last_resolved_by:
                    actor_id: W0G82F4FD
                    actor_type: user
                  scopes:
                  - description: >-
                      Add the ability for people to direct message or
                      mention @my_test_app
                    is_sensitive: true
                    name: bot
                    token_type: bot
                ok: true
                response_metadata:
                  next_cursor: ''
        default:
          description: Typical error response
          content:
            application/json:
              schema:
                title: Default error template
                required:
                - ok
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_false'
                additionalProperties: true
                description: >-
                  This method either only returns a brief _not OK_ response or a
                  verbose schema is not available for this method.
              example:
                error: invalid_auth
                ok: false
      security:
      - slackAuth:
        - admin.apps:read
      summary: Slack Get Admin Apps Approved List
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /admin.apps.requests.list:
    get:
      tags:
      - Administrative
      - Applications
      - Get
      - Lists
      - Requests
      description: List app requests for a team/workspace.
      externalDocs:
        description: API method documentation
        url: https://api.slack.com/methods/admin.apps.requests.list
      operationId: getAdminAppsRequestsList
      parameters:
      - name: token
        in: query
        description: 'Authentication token. Requires scope: `admin.apps:read`'
        required: true
        schema:
          type: string
      - name: limit
        in: query
        description: >-
          The maximum number of items to return. Must be between 1 - 1000 both
          inclusive.
        schema:
          type: integer
      - name: cursor
        in: query
        description: >-
          Set `cursor` to `next_cursor` returned by the previous call to list
          items in the next page
        schema:
          type: string
      - name: team_id
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Typical success response
          content:
            application/json:
              schema:
                title: Default success template
                required:
                - ok
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_true'
                additionalProperties: true
                description: >-
                  This method either only returns a brief _OK_ response or a
                  verbose schema is not available for this method.
              example:
                app_requests:
                - app:
                    additional_info: ''
                    app_directory_url: https://acmecorp.slack.com/apps/A061BL8RQ0-test-app
                    app_homepage_url: ''
                    description: ''
                    help_url: ''
                    icons:
                      image_1024: /cdn/15258203/img/testapp/service_1024.png
                      image_128: /cdn/157258203/img/testapp/service_128.png
                      image_192: /cdn/157258203/img/testapp/service_192.png
                      image_32: /cdn/157658203/img/testapp/service_32.png
                      image_36: /cdn/157658203/img/testapp/service_36.png
                      image_48: /cdn/157658203/img/testapp/service_48.png
                      image_512: /cdn/15758203/img/testapp/service_512.png
                      image_64: /cdn/157658203/img/testapp/service_64.png
                      image_72: /cdn/157658203/img/testapp/service_72.png
                      image_96: /cdn/157658203/img/testapp/service_96.png
                    id: A061BL8RQ0
                    is_app_directory_approved: true
                    is_internal: false
                    name: Test App
                    privacy_policy_url: https://testapp.com/privacy
                  date_created: 1578956327
                  id: Ar0XJGFLMLS
                  message: test test again
                  previous_resolution:
                  scopes:
                  - description: Post messages to specific channels in Slack
                    is_sensitive: false
                    name: incoming-webhook
                    token_type: user
                  team:
                    domain: acmecorp
                    id: T0M94LNUCR
                    name: Acme Corp
                  user:
                    email: [email protected]
                    id: W08RA9G5HR
                    name: Jane Doe
                ok: true
                response_metadata:
                  next_cursor: ''
        default:
          description: Typical error response
          content:
            application/json:
              schema:
                title: Default error template
                required:
                - ok
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_false'
                additionalProperties: true
                description: >-
                  This method either only returns a brief _not OK_ response or a
                  verbose schema is not available for this method.
              example:
                error: missing_scope
                needed: admin.apps:read
                ok: false
                provided: read,client,admin,identify,post,apps
      security:
      - slackAuth:
        - admin.apps:read
      summary: Slack Get Admin Apps Requests List
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /admin.apps.restrict:
    post:
      tags:
      - Administrative
      - Applications
      - Post
      - Restrict
      description: Restrict an app for installation on a workspace.
      externalDocs:
        description: API method documentation
        url: https://api.slack.com/methods/admin.apps.restrict
      operationId: postAdminAppsRestrict
      parameters:
      - name: token
        in: header
        description: 'Authentication token. Requires scope: `admin.apps:write`'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                app_id:
                  type: string
                  description: The id of the app to restrict.
                request_id:
                  type: string
                  description: The id of the request to restrict.
                team_id:
                  type: string
          application/json:
            schema:
              type: object
              properties:
                app_id:
                  type: string
                  description: The id of the app to restrict.
                request_id:
                  type: string
                  description: The id of the request to restrict.
                team_id:
                  type: string
      responses:
        '200':
          description: Typical success response
          content:
            application/json:
              schema:
                title: Default success template
                required:
                - ok
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_true'
                additionalProperties: true
                description: >-
                  This method either only returns a brief _OK_ response or a
                  verbose schema is not available for this method.
              example:
                ok: true
        default:
          description: Typical error response
          content:
            application/json:
              schema:
                title: Default error template
                required:
                - ok
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_false'
                additionalProperties: true
                description: >-
                  This method either only returns a brief _not OK_ response or a
                  verbose schema is not available for this method.
              example:
                error: invalid_auth
                ok: false
      security:
      - slackAuth:
        - admin.apps:write
      summary: Slack Post Admin Apps Restrict
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /admin.apps.restricted.list:
    get:
      tags:
      - Administrative
      - Applications
      - Get
      - Lists
      - Restricted
      description: List restricted apps for an org or workspace.
      externalDocs:
        description: API method documentation
        url: https://api.slack.com/methods/admin.apps.restricted.list
      operationId: getAdminAppsRestrictedList
      parameters:
      - name: token
        in: query
        description: 'Authentication token. Requires scope: `admin.apps:read`'
        required: true
        schema:
          type: string
      - name: limit
        in: query
        description: >-
          The maximum number of items to return. Must be between 1 - 1000 both
          inclusive.
        schema:
          type: integer
      - name: cursor
        in: query
        description: >-
          Set `cursor` to `next_cursor` returned by the previous call to list
          items in the next page
        schema:
          type: string
      - name: team_id
        in: query
        schema:
          type: string
      - name: enterprise_id
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Typical success response
          content:
            application/json:
              schema:
                title: Default success template
                required:
                - ok
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_true'
                additionalProperties: true
                description: >-
                  This method either only returns a brief _OK_ response or a
                  verbose schema is not available for this method.
              example:
                ok: true
                response_metadata:
                  next_cursor: ''
                restricted_apps:
                - app:
                    additional_info: ''
                    app_directory_url: >-
                      https://myteam.enterprise.slack.com/apps/A0FDLP8M2L-my-test-app
                    app_homepage_url: https://example.com
                    description: A fun test app for Slack
                    help_url: https://example.com
                    icons:
                      image_1024: >-
                        https://1433265338rl878408_eb57dbc818daa4ba15d6_1024.png
                      image_128: https://4332653438rl87808_eb57dbc818daa4ba15d6_128.png
                      image_192: https://4332653438rl87808_eb57dbc818daa4ba15d6_192.png
                      image_32: https://143326534038rl8788_eb57dbc818daa4ba15d6_32.png
                      image_36: https://143326534038rl8788_eb57dbc818daa4ba15d6_36.png
                      image_48: https://143326534038rl8788_eb57dbc818daa4ba15d6_48.png
                      image_512: https://4332653438rl87808_eb57dbc818daa4ba15d6_512.png
                      image_64: https://143326534038rl8788_eb57dbc818daa4ba15d6_64.png
                      image_72: https://143326534038rl8788_eb57dbc818daa4ba15d6_72.png
                      image_96: https://143326534038rl8788_eb57dbc818daa4ba15d6_96.png
                      image_original: >-
                        https://143338rl8782653408_eb57dbc818daa4ba15d6_original.png
                    id: A0FDLP8M2L
                    is_app_directory_approved: true
                    is_internal: false
                    name: My Test App
                    privacy_policy_url: https://example.com
                  date_updated: 1574296721
                  last_resolved_by:
                    actor_id: W0G82LMFD
                    actor_type: user
                  scopes:
                  - description: Upload, edit, and delete files on the user's behalf
                    is_sensitive: true
                    name: files:write:user
                    token_type: user
        default:
          description: Typical error response
          content:
            application/json:
              schema:
                title: Default error template
                required:
                - ok
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_false'
                additionalProperties: true
                description: >-
                  This method either only returns a brief _not OK_ response or a
                  verbose schema is not available for this method.
              example:
                error: invalid_auth
                ok: false
      security:
      - slackAuth:
        - admin.apps:read
      summary: Slack Get Admin Apps Restricted List
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /admin.conversations.archive:
    post:
      tags:
      - Administrative
      - Archive
      - Conversations
      - Post
      description: Archive a public or private channel.
      externalDocs:
        description: API method documentation
        url: https://api.slack.com/methods/admin.conversations.archive
      operationId: postAdminConversationsArchive
      parameters:
      - name: token
        in: header
        description: 'Authentication token. Requires scope: `admin.conversations:write`'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
              - channel_id
              type: object
              properties:
                channel_id:
                  type: string
                  description: The channel to archive.
          application/json:
            schema:
              required:
              - channel_id
              type: object
              properties:
                channel_id:
                  type: string
                  description: The channel to archive.
        required: true
      responses:
        '200':
          description: Typical success response
          content:
            application/json:
              schema:
                title: admin.conversations.archive schema
                required:
                - ok
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_true'
                additionalProperties: false
                description: Schema for successful response of admin.conversations.archive
              example:
                ok: true
        default:
          description: Typical error response
          content:
            application/json:
              schema:
                title: admin.conversations.archive error schema
                required:
                - error
                - ok
                type: object
                properties:
                  error:
                    type: string
                    enum:
                    - feature_not_enabled
                    - channel_not_found
                    - channel_type_not_supported
                    - default_org_wide_channel
                    - already_archived
                    - cant_archive_general
                    - restricted_action
                    - could_not_archive_channel
                  ok:
                    $ref: '#/components/schemas/defs_ok_false'
                additionalProperties: false
                description: Schema for error response from admin.conversations.archive
              example:
                error: invalid_auth
                ok: false
      security:
      - slackAuth:
        - admin.conversations:write
      summary: Slack Post Admin Conversations Archive
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /admin.conversations.convertToPrivate:
    post:
      tags:
      - Administrative
      - Conversations
      - Post
      description: Convert a public channel to a private channel.
      externalDocs:
        description: API method documentation
        url: https://api.slack.com/methods/admin.conversations.convertToPrivate
      operationId: postAdminConversationsConverttoprivate
      parameters:
      - name: token
        in: header
        description: 'Authentication token. Requires scope: `admin.conversations:write`'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
              - channel_id
              type: object
              properties:
                channel_id:
                  type: string
                  description: The channel to convert to private.
          application/json:
            schema:
              required:
              - channel_id
              type: object
              properties:
                channel_id:
                  type: string
                  description: The channel to convert to private.
        required: true
      responses:
        '200':
          description: Typical success response
          content:
            application/json:
              schema:
                title: admin.conversations.convertToPrivate schema
                required:
                - ok
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_true'
                additionalProperties: false
                description: >-
                  Schema for successful response of
                  admin.conversations.convertToPrivate
              example:
                ok: true
        default:
          description: Typical error response
          content:
            application/json:
              schema:
                title: admin.conversations.convertToPrivate error schema
                required:
                - error
                - ok
                type: object
                properties:
                  error:
                    type: string
                    enum:
                    - feature_not_enabled
                    - restricted_action
                    - name_taken
                    - channel_not_found
                    - channel_type_not_supported
                    - default_org_wide_channel
                    - method_not_supported_for_channel_type
                    - could_not_convert_channel
                    - external_channel_migrating
                  ok:
                    $ref: '#/components/schemas/defs_ok_false'
                additionalProperties: false
                description: >-
                  Schema for error response from
                  admin.conversations.convertToPrivate
              example:
                error: invalid_auth
                ok: false
      security:
      - slackAuth:
        - admin.conversations:write
      summary: Slack Post Admin Conversations Converttoprivate
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /admin.conversations.create:
    post:
      tags:
      - Administrative
      - Conversations
      - Create
      - Post
      description: Create a public or private channel-based conversation.
      externalDocs:
        description: API method documentation
        url: https://api.slack.com/methods/admin.conversations.create
      operationId: postAdminConversationsCreate
      parameters:
      - name: token
        in: header
        description: 'Authentication token. Requires scope: `admin.conversations:write`'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
              - is_private
              - name
              type: object
              properties:
                name:
                  type: string
                  description: Name of the public or private channel to create.
                description:
                  type: string
                  description: Description of the public or private channel to create.
                is_private:
                  type: boolean
                  description: >-
                    When `true`, creates a private channel instead of a public
                    channel
                org_wide:
                  type: boolean
                  description: >-
                    When `true`, the channel will be available org-wide. Note:
                    if the channel is not `org_wide=true`, you must specify a
                    `team_id` for this channel
                team_id:
                  type: string
                  description: >-
                    The workspace to create the channel in. Note: this argument
                    is required unless you set `org_wide=true`.
          application/json:
            schema:
              required:
              - is_private
              - name
              type: object
              properties:
                name:
                  type: string
                  description: Name of the public or private channel to create.
                description:
                  type: string
                  description: Description of the public or private channel to create.
                is_private:
                  type: boolean
                  description: >-
                    When `true`, creates a private channel instead of a public
                    channel
                org_wide:
                  type: boolean
                  description: >-
                    When `true`, the channel will be available org-wide. Note:
                    if the channel is not `org_wide=true`, you must specify a
                    `team_id` for this channel
                team_id:
                  type: string
                  description: >-
                    The workspace to create the channel in. Note: this argument
                    is required unless you set `org_wide=true`.
        required: true
      responses:
        '200':
          description: Typical success response
          content:
            application/json:
              schema:
                title: admin.conversations.create schema
                required:
                - ok
                type: object
                properties:
                  channel_id:
                    $ref: '#/components/schemas/defs_channel_id'
                  ok:
                    $ref: '#/components/schemas/defs_ok_true'
                additionalProperties: false
                description: Schema for successful response of admin.conversations.create
              example:
                channel_id: C12345
                ok: true
        default:
          description: Typical error response
          content:
            application/json:
              schema:
                title: admin.conversations.create error schema
                required:
                - error
                - ok
                type: object
                properties:
               

# --- truncated at 32 KB (193 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/slack/refs/heads/main/openapi/slack-admin-openapi.yml