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.
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: 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