Slack · Capability
Slack Conversations API — Conversations
Slack Conversations API — Conversations. 18 operations. Lead operation: Slack Post Conversations Archive. Self-contained Naftiko capability covering one Slack business surface.
What You Can Do
POST
Postconversationsarchive
— Slack Post Conversations Archive
/v1/conversations-archive
POST
Postconversationsclose
— Slack Post Conversations Close
/v1/conversations-close
POST
Postconversationscreate
— Slack Post Conversations Create
/v1/conversations-create
GET
Getconversationshistory
— Slack Get Conversations History
/v1/conversations-history
GET
Getconversationsinfo
— Slack Get Conversations Info
/v1/conversations-info
POST
Postconversationsinvite
— Slack Post Conversations Invite
/v1/conversations-invite
POST
Postconversationsjoin
— Slack Post Conversations Join
/v1/conversations-join
POST
Postconversationskick
— Slack Post Conversations Kick
/v1/conversations-kick
POST
Postconversationsleave
— Slack Post Conversations Leave
/v1/conversations-leave
GET
Getconversationslist
— Slack Get Conversations List
/v1/conversations-list
POST
Postconversationsmark
— Slack Post Conversations Mark
/v1/conversations-mark
GET
Getconversationsmembers
— Slack Get Conversations Members
/v1/conversations-members
POST
Postconversationsopen
— Slack Post Conversations Open
/v1/conversations-open
POST
Postconversationsrename
— Slack Post Conversations Rename
/v1/conversations-rename
GET
Getconversationsreplies
— Slack Get Conversations Replies
/v1/conversations-replies
POST
Postconversationssetpurpose
— Slack Post Conversations Setpurpose
/v1/conversations-setpurpose
POST
Postconversationssettopic
— Slack Post Conversations Settopic
/v1/conversations-settopic
POST
Postconversationsunarchive
— Slack Post Conversations Unarchive
/v1/conversations-unarchive
MCP Tools
slack-post-conversations-archive
Slack Post Conversations Archive
slack-post-conversations-close
Slack Post Conversations Close
slack-post-conversations-create
Slack Post Conversations Create
slack-get-conversations-history
Slack Get Conversations History
read-only
idempotent
slack-get-conversations-info
Slack Get Conversations Info
read-only
idempotent
slack-post-conversations-invite
Slack Post Conversations Invite
slack-post-conversations-join
Slack Post Conversations Join
slack-post-conversations-kick
Slack Post Conversations Kick
slack-post-conversations-leave
Slack Post Conversations Leave
slack-get-conversations-list
Slack Get Conversations List
read-only
idempotent
slack-post-conversations-mark
Slack Post Conversations Mark
slack-get-conversations-members
Slack Get Conversations Members
read-only
idempotent
slack-post-conversations-open
Slack Post Conversations Open
slack-post-conversations-rename
Slack Post Conversations Rename
slack-get-conversations-replies
Slack Get Conversations Replies
read-only
idempotent
slack-post-conversations-setpurpose
Slack Post Conversations Setpurpose
slack-post-conversations-settopic
Slack Post Conversations Settopic
slack-post-conversations-unarchive
Slack Post Conversations Unarchive
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Slack Conversations API — Conversations
description: 'Slack Conversations API — Conversations. 18 operations. Lead operation: Slack Post Conversations Archive.
Self-contained Naftiko capability covering one Slack business surface.'
tags:
- Slack
- Conversations
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
SLACK_API_KEY: SLACK_API_KEY
capability:
consumes:
- type: http
namespace: conversations-conversations
baseUri: ''
description: Slack Conversations API — Conversations business capability. Self-contained, no shared references.
resources:
- name: conversations.archive
path: /conversations.archive
operations:
- name: postconversationsarchive
method: POST
description: Slack Post Conversations Archive
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: token
in: header
type: string
description: 'Authentication token. Requires scope: `conversations:write`'
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: conversations.close
path: /conversations.close
operations:
- name: postconversationsclose
method: POST
description: Slack Post Conversations Close
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: token
in: header
type: string
description: 'Authentication token. Requires scope: `conversations:write`'
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: conversations.create
path: /conversations.create
operations:
- name: postconversationscreate
method: POST
description: Slack Post Conversations Create
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: token
in: header
type: string
description: 'Authentication token. Requires scope: `conversations:write`'
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: conversations.history
path: /conversations.history
operations:
- name: getconversationshistory
method: GET
description: Slack Get Conversations History
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: token
in: query
type: string
description: 'Authentication token. Requires scope: `conversations:history`'
- name: channel
in: query
type: string
description: Conversation ID to fetch history for.
- name: latest
in: query
type: number
description: End of time range of messages to include in results.
- name: oldest
in: query
type: number
description: Start of time range of messages to include in results.
- name: inclusive
in: query
type: boolean
description: Include messages with latest or oldest timestamp in results only when either timestamp is specified.
- name: limit
in: query
type: integer
description: The maximum number of items to return. Fewer than the requested number of items may be returned, even
if the end of the users list hasn't been reached.
- name: cursor
in: query
type: string
description: Paginate through collections of data by setting the `cursor` parameter to a `next_cursor` attribute
returned by a previous request's `response_metadata`. Defaul
- name: conversations.info
path: /conversations.info
operations:
- name: getconversationsinfo
method: GET
description: Slack Get Conversations Info
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: token
in: query
type: string
description: 'Authentication token. Requires scope: `conversations:read`'
- name: channel
in: query
type: string
description: Conversation ID to learn more about
- name: include_locale
in: query
type: boolean
description: Set this to `true` to receive the locale for this conversation. Defaults to `false`
- name: include_num_members
in: query
type: boolean
description: Set to `true` to include the member count for the specified conversation. Defaults to `false`
- name: conversations.invite
path: /conversations.invite
operations:
- name: postconversationsinvite
method: POST
description: Slack Post Conversations Invite
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: token
in: header
type: string
description: 'Authentication token. Requires scope: `conversations:write`'
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: conversations.join
path: /conversations.join
operations:
- name: postconversationsjoin
method: POST
description: Slack Post Conversations Join
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: token
in: header
type: string
description: 'Authentication token. Requires scope: `channels:write`'
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: conversations.kick
path: /conversations.kick
operations:
- name: postconversationskick
method: POST
description: Slack Post Conversations Kick
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: token
in: header
type: string
description: 'Authentication token. Requires scope: `conversations:write`'
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: conversations.leave
path: /conversations.leave
operations:
- name: postconversationsleave
method: POST
description: Slack Post Conversations Leave
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: token
in: header
type: string
description: 'Authentication token. Requires scope: `conversations:write`'
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: conversations.list
path: /conversations.list
operations:
- name: getconversationslist
method: GET
description: Slack Get Conversations List
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: token
in: query
type: string
description: 'Authentication token. Requires scope: `conversations:read`'
- name: exclude_archived
in: query
type: boolean
description: Set to `true` to exclude archived channels from the list
- name: types
in: query
type: string
description: Mix and match channel types by providing a comma-separated list of any combination of `public_channel`,
`private_channel`, `mpim`, `im`
- name: limit
in: query
type: integer
description: The maximum number of items to return. Fewer than the requested number of items may be returned, even
if the end of the list hasn't been reached. Must be an int
- name: cursor
in: query
type: string
description: Paginate through collections of data by setting the `cursor` parameter to a `next_cursor` attribute
returned by a previous request's `response_metadata`. Defaul
- name: conversations.mark
path: /conversations.mark
operations:
- name: postconversationsmark
method: POST
description: Slack Post Conversations Mark
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: token
in: header
type: string
description: 'Authentication token. Requires scope: `conversations:write`'
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: conversations.members
path: /conversations.members
operations:
- name: getconversationsmembers
method: GET
description: Slack Get Conversations Members
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: token
in: query
type: string
description: 'Authentication token. Requires scope: `conversations:read`'
- name: channel
in: query
type: string
description: ID of the conversation to retrieve members for
- name: limit
in: query
type: integer
description: The maximum number of items to return. Fewer than the requested number of items may be returned, even
if the end of the users list hasn't been reached.
- name: cursor
in: query
type: string
description: Paginate through collections of data by setting the `cursor` parameter to a `next_cursor` attribute
returned by a previous request's `response_metadata`. Defaul
- name: conversations.open
path: /conversations.open
operations:
- name: postconversationsopen
method: POST
description: Slack Post Conversations Open
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: token
in: header
type: string
description: 'Authentication token. Requires scope: `conversations:write`'
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: conversations.rename
path: /conversations.rename
operations:
- name: postconversationsrename
method: POST
description: Slack Post Conversations Rename
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: token
in: header
type: string
description: 'Authentication token. Requires scope: `conversations:write`'
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: conversations.replies
path: /conversations.replies
operations:
- name: getconversationsreplies
method: GET
description: Slack Get Conversations Replies
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: token
in: query
type: string
description: 'Authentication token. Requires scope: `conversations:history`'
- name: channel
in: query
type: string
description: Conversation ID to fetch thread from.
- name: ts
in: query
type: number
description: 'Unique identifier of a thread''s parent message. `ts` must be the timestamp of an existing message
with 0 or more replies. If there are no replies then just the '
- name: latest
in: query
type: number
description: End of time range of messages to include in results.
- name: oldest
in: query
type: number
description: Start of time range of messages to include in results.
- name: inclusive
in: query
type: boolean
description: Include messages with latest or oldest timestamp in results only when either timestamp is specified.
- name: limit
in: query
type: integer
description: The maximum number of items to return. Fewer than the requested number of items may be returned, even
if the end of the users list hasn't been reached.
- name: cursor
in: query
type: string
description: Paginate through collections of data by setting the `cursor` parameter to a `next_cursor` attribute
returned by a previous request's `response_metadata`. Defaul
- name: conversations.setPurpose
path: /conversations.setPurpose
operations:
- name: postconversationssetpurpose
method: POST
description: Slack Post Conversations Setpurpose
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: token
in: header
type: string
description: 'Authentication token. Requires scope: `conversations:write`'
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: conversations.setTopic
path: /conversations.setTopic
operations:
- name: postconversationssettopic
method: POST
description: Slack Post Conversations Settopic
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: token
in: header
type: string
description: 'Authentication token. Requires scope: `conversations:write`'
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: conversations.unarchive
path: /conversations.unarchive
operations:
- name: postconversationsunarchive
method: POST
description: Slack Post Conversations Unarchive
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: token
in: header
type: string
description: 'Authentication token. Requires scope: `conversations:write`'
- name: body
in: body
type: object
description: Request body (JSON).
required: false
exposes:
- type: rest
namespace: conversations-conversations-rest
port: 8080
description: REST adapter for Slack Conversations API — Conversations. One Spectral-compliant resource per consumed operation,
prefixed with /v1.
resources:
- path: /v1/conversations-archive
name: conversations-archive
description: REST surface for conversations.archive.
operations:
- method: POST
name: postconversationsarchive
description: Slack Post Conversations Archive
call: conversations-conversations.postconversationsarchive
with:
token: rest.token
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/conversations-close
name: conversations-close
description: REST surface for conversations.close.
operations:
- method: POST
name: postconversationsclose
description: Slack Post Conversations Close
call: conversations-conversations.postconversationsclose
with:
token: rest.token
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/conversations-create
name: conversations-create
description: REST surface for conversations.create.
operations:
- method: POST
name: postconversationscreate
description: Slack Post Conversations Create
call: conversations-conversations.postconversationscreate
with:
token: rest.token
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/conversations-history
name: conversations-history
description: REST surface for conversations.history.
operations:
- method: GET
name: getconversationshistory
description: Slack Get Conversations History
call: conversations-conversations.getconversationshistory
with:
token: rest.token
channel: rest.channel
latest: rest.latest
oldest: rest.oldest
inclusive: rest.inclusive
limit: rest.limit
cursor: rest.cursor
outputParameters:
- type: object
mapping: $.
- path: /v1/conversations-info
name: conversations-info
description: REST surface for conversations.info.
operations:
- method: GET
name: getconversationsinfo
description: Slack Get Conversations Info
call: conversations-conversations.getconversationsinfo
with:
token: rest.token
channel: rest.channel
include_locale: rest.include_locale
include_num_members: rest.include_num_members
outputParameters:
- type: object
mapping: $.
- path: /v1/conversations-invite
name: conversations-invite
description: REST surface for conversations.invite.
operations:
- method: POST
name: postconversationsinvite
description: Slack Post Conversations Invite
call: conversations-conversations.postconversationsinvite
with:
token: rest.token
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/conversations-join
name: conversations-join
description: REST surface for conversations.join.
operations:
- method: POST
name: postconversationsjoin
description: Slack Post Conversations Join
call: conversations-conversations.postconversationsjoin
with:
token: rest.token
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/conversations-kick
name: conversations-kick
description: REST surface for conversations.kick.
operations:
- method: POST
name: postconversationskick
description: Slack Post Conversations Kick
call: conversations-conversations.postconversationskick
with:
token: rest.token
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/conversations-leave
name: conversations-leave
description: REST surface for conversations.leave.
operations:
- method: POST
name: postconversationsleave
description: Slack Post Conversations Leave
call: conversations-conversations.postconversationsleave
with:
token: rest.token
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/conversations-list
name: conversations-list
description: REST surface for conversations.list.
operations:
- method: GET
name: getconversationslist
description: Slack Get Conversations List
call: conversations-conversations.getconversationslist
with:
token: rest.token
exclude_archived: rest.exclude_archived
types: rest.types
limit: rest.limit
cursor: rest.cursor
outputParameters:
- type: object
mapping: $.
- path: /v1/conversations-mark
name: conversations-mark
description: REST surface for conversations.mark.
operations:
- method: POST
name: postconversationsmark
description: Slack Post Conversations Mark
call: conversations-conversations.postconversationsmark
with:
token: rest.token
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/conversations-members
name: conversations-members
description: REST surface for conversations.members.
operations:
- method: GET
name: getconversationsmembers
description: Slack Get Conversations Members
call: conversations-conversations.getconversationsmembers
with:
token: rest.token
channel: rest.channel
limit: rest.limit
cursor: rest.cursor
outputParameters:
- type: object
mapping: $.
- path: /v1/conversations-open
name: conversations-open
description: REST surface for conversations.open.
operations:
- method: POST
name: postconversationsopen
description: Slack Post Conversations Open
call: conversations-conversations.postconversationsopen
with:
token: rest.token
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/conversations-rename
name: conversations-rename
description: REST surface for conversations.rename.
operations:
- method: POST
name: postconversationsrename
description: Slack Post Conversations Rename
call: conversations-conversations.postconversationsrename
with:
token: rest.token
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/conversations-replies
name: conversations-replies
description: REST surface for conversations.replies.
operations:
- method: GET
name: getconversationsreplies
description: Slack Get Conversations Replies
call: conversations-conversations.getconversationsreplies
with:
token: rest.token
channel: rest.channel
ts: rest.ts
latest: rest.latest
oldest: rest.oldest
inclusive: rest.inclusive
limit: rest.limit
cursor: rest.cursor
outputParameters:
- type: object
mapping: $.
- path: /v1/conversations-setpurpose
name: conversations-setpurpose
description: REST surface for conversations.setPurpose.
operations:
- method: POST
name: postconversationssetpurpose
description: Slack Post Conversations Setpurpose
call: conversations-conversations.postconversationssetpurpose
with:
token: rest.token
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/conversations-settopic
name: conversations-settopic
description: REST surface for conversations.setTopic.
operations:
- method: POST
name: postconversationssettopic
description: Slack Post Conversations Settopic
call: conversations-conversations.postconversationssettopic
with:
token: rest.token
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/conversations-unarchive
name: conversations-unarchive
description: REST surface for conversations.unarchive.
operations:
- method: POST
name: postconversationsunarchive
description: Slack Post Conversations Unarchive
call: conversations-conversations.postconversationsunarchive
with:
token: rest.token
body: rest.body
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: conversations-conversations-mcp
port: 9090
transport: http
description: MCP adapter for Slack Conversations API — Conversations. One tool per consumed operation, routed inline through
this capability's consumes block.
tools:
- name: slack-post-conversations-archive
description: Slack Post Conversations Archive
hints:
readOnly: false
destructive: false
idempotent: false
call: conversations-conversations.postconversationsarchive
with:
token: tools.token
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: slack-post-conversations-close
description: Slack Post Conversations Close
hints:
readOnly: false
destructive: false
idempotent: false
call: conversations-conversations.postconversationsclose
with:
token: tools.token
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: slack-post-conversations-create
description: Slack Post Conversations Create
hints:
readOnly: false
destructive: false
idempotent: false
call: conversations-conversations.postconversationscreate
with:
token: tools.token
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: slack-get-conversations-history
description: Slack Get Conversations History
hints:
readOnly: true
destructive: false
idempotent: true
call: conversations-conversations.getconversationshistory
with:
token: tools.token
channel: tools.channel
latest: tools.latest
oldest: tools.oldest
inclusive: tools.inclusive
limit: tools.limit
cursor: tools.cursor
outputParameters:
- type: object
mapping: $.
- name: slack-get-conversations-info
description: Slack Get Conversations Info
hints:
readOnly: true
destructive: false
idempotent: true
call: conversations-conversations.getconversationsinfo
with:
token: tools.token
channel: tools.channel
include_locale: tools.include_locale
include_num_members: tools.include_num_members
outputParameters:
- type: object
mapping: $.
- name: slack-post-conversations-invite
description: Slack Post Conversations Invite
hints:
readOnly: false
destructive: false
idempotent: false
call: conversations-conversations.postconversationsinvite
with:
token: tools.token
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: slack-post-conversations-join
description: Slack Post Conversations Join
hints:
readOnly: false
destructive: false
idempotent: false
call: conversations-conversations.postconversationsjoin
with:
token: tools.token
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: slack-post-conversations-kick
description: Slack Post Conversations Kick
hints:
readOnly: false
destructive: false
idempotent: false
call: conversations-conversations.postconversationskick
with:
token: tools.token
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: slack-post-conversations-leave
description: Slack Post Conversations Leave
hints:
readOnly: false
destructive: false
idempotent: false
call: conversations-conversations.postconversationsleave
with:
token: tools.token
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: slack-get-conversations-list
description: Slack Get Conversations List
hints:
readOnly: true
destructive: false
idempotent: true
call: conversations-conversations.getconversationslist
with:
token: tools.token
exclude_archived: tools.exclude_archived
types: tools.types
limit: tools.limit
cursor: tools.cursor
outputParameters:
- type: object
mapping: $.
- name: slack-post-conversations-mark
description: Slack Post Conversations Mark
hints:
readOnly: false
destructive: false
idempotent: false
call: conversations-conversations.postconversationsmark
with:
token: tools.token
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: slack-get-conversations-members
description: Slack Get Conversations Members
hints:
readOnly: true
destructive: false
idempotent: true
call: conversations-conversations.getconversationsmembers
with:
token: tools.token
channel: tools.channel
limit: tools.limit
cursor: tools.cursor
outputParameters:
- type: object
mapping: $.
- name: slack-post-conversations-open
description: Slack Post Conversations Open
hints:
readOnly: false
destructive: false
idempotent: false
call: conversations-conversations.postconversationsopen
with:
token: tools.token
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: slack-post-conversations-rename
description: Slack Post Conversations Rename
hints:
readOnly: false
destructive: false
idempotent: false
call: conversations-conversations.postconversationsrename
with:
token: tools.token
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: slack-get-conversations-replies
description: Slack Get Conversations Replies
hints:
readOnly: true
destructive: false
idempotent: true
call: conversations-conversations.getconversationsreplies
with:
token: tools.token
channel: tools.channel
ts: tools.ts
latest: tools.latest
oldest: tools.oldest
inclusive: tools.inclusive
limit: tools.limit
cursor: tools.cursor
outputParameters:
- type: object
mapping: $.
- name: slack-post-conversations-setpurpose
description: Slack Post Conversations Setpurpose
hints:
readOnly: false
destructive: false
idempotent: false
call: conversations-conversations.postconversationssetpurpose
with:
token: tools.token
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: slack-post-conversations-settopic
description: Slack Post Conversations Settopic
hints:
readOnly: false
destructive: false
idempotent: false
call: conversations-conversations.postconversationssettopic
with:
token: tools.token
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: slack-post-conversations-unarchive
description: Slack Post Conversations Unarchive
hints:
readOnly: false
destructive: false
idempotent: false
call: conversations-conversations.postconversationsunarchive
with:
token: tools.token
body: tools.body
outputParameters:
- type: object
mapping: $.