naftiko: 1.0.0-alpha2 info: label: Slack Admin API — Conversations description: 'Slack Admin API — Conversations. 17 operations. Lead operation: Slack Post Admin 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: admin-conversations baseUri: '' description: Slack Admin API — Conversations business capability. Self-contained, no shared references. resources: - name: admin.conversations.archive path: /admin.conversations.archive operations: - name: postadminconversationsarchive method: POST description: Slack Post Admin Conversations Archive outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `admin.conversations:write`' required: true - name: body in: body type: object description: Request body (JSON). required: true - name: admin.conversations.convertToPrivate path: /admin.conversations.convertToPrivate operations: - name: postadminconversationsconverttoprivate method: POST description: Slack Post Admin Conversations Converttoprivate outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `admin.conversations:write`' required: true - name: body in: body type: object description: Request body (JSON). required: true - name: admin.conversations.create path: /admin.conversations.create operations: - name: postadminconversationscreate method: POST description: Slack Post Admin Conversations Create outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `admin.conversations:write`' required: true - name: body in: body type: object description: Request body (JSON). required: true - name: admin.conversations.delete path: /admin.conversations.delete operations: - name: postadminconversationsdelete method: POST description: Slack Post Admin Conversations Delete outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `admin.conversations:write`' required: true - name: body in: body type: object description: Request body (JSON). required: true - name: admin.conversations.disconnectShared path: /admin.conversations.disconnectShared operations: - name: postadminconversationsdisconnectshared method: POST description: Slack Post Admin Conversations Disconnectshared outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `admin.conversations:write`' required: true - name: body in: body type: object description: Request body (JSON). required: true - name: admin.conversations.ekm.listOriginalConnectedChannelInfo path: /admin.conversations.ekm.listOriginalConnectedChannelInfo operations: - name: getadminconversationsekmlistoriginalconnectedchannelinfo method: GET description: Slack Get Admin Conversations Ekm Listoriginalconnectedchannelinfo outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: query type: string description: 'Authentication token. Requires scope: `admin.conversations:read`' required: true - name: channel_ids in: query type: string description: A comma-separated list of channels to filter to. - name: team_ids in: query type: string description: A comma-separated list of the workspaces to which the channels you would like returned belong. - name: limit in: query type: integer description: The maximum number of items to return. Must be between 1 - 1000 both inclusive. - name: cursor in: query type: string description: Set `cursor` to `next_cursor` returned by the previous call to list items in the next page. - name: admin.conversations.getConversationPrefs path: /admin.conversations.getConversationPrefs operations: - name: getadminconversationsgetconversationprefs method: GET description: Slack Get Admin Conversations Getconversationprefs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `admin.conversations:read`' required: true - name: channel_id in: query type: string description: The channel to get preferences for. required: true - name: admin.conversations.getTeams path: /admin.conversations.getTeams operations: - name: getadminconversationsgetteams method: GET description: Slack Get Admin Conversations Getteams outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `admin.conversations:read`' required: true - name: channel_id in: query type: string description: The channel to determine connected workspaces within the organization for. required: true - name: cursor in: query type: string description: Set `cursor` to `next_cursor` returned by the previous call to list items in the next page - name: limit in: query type: integer description: The maximum number of items to return. Must be between 1 - 1000 both inclusive. - name: admin.conversations.invite path: /admin.conversations.invite operations: - name: postadminconversationsinvite method: POST description: Slack Post Admin Conversations Invite outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `admin.conversations:write`' required: true - name: body in: body type: object description: Request body (JSON). required: true - name: admin.conversations.rename path: /admin.conversations.rename operations: - name: postadminconversationsrename method: POST description: Slack Post Admin Conversations Rename outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `admin.conversations:write`' required: true - name: body in: body type: object description: Request body (JSON). required: true - name: admin.conversations.restrictAccess.addGroup path: /admin.conversations.restrictAccess.addGroup operations: - name: postadminconversationsrestrictaccessaddgroup method: POST description: Slack Post Admin Conversations Restrictaccess Addgroup outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: admin.conversations.restrictAccess.listGroups path: /admin.conversations.restrictAccess.listGroups operations: - name: getadminconversationsrestrictaccesslistgroups method: GET description: Slack Get Admin Conversations Restrictaccess Listgroups outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: query type: string description: 'Authentication token. Requires scope: `admin.conversations:read`' required: true - name: channel_id in: query type: string required: true - name: team_id in: query type: string description: The workspace where the channel exists. This argument is required for channels only tied to one workspace, and optional for channels that are shared across an o - name: admin.conversations.restrictAccess.removeGroup path: /admin.conversations.restrictAccess.removeGroup operations: - name: postadminconversationsrestrictaccessremovegroup method: POST description: Slack Post Admin Conversations Restrictaccess Removegroup outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: admin.conversations.search path: /admin.conversations.search operations: - name: getadminconversationssearch method: GET description: Slack Get Admin Conversations Search outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `admin.conversations:read`' required: true - name: team_ids in: query type: string description: Comma separated string of team IDs, signifying the workspaces to search through. - name: query in: query type: string description: Name of the the channel to query by. - name: limit in: query type: integer description: Maximum number of items to be returned. Must be between 1 - 20 both inclusive. Default is 10. - name: cursor in: query type: string description: Set `cursor` to `next_cursor` returned by the previous call to list items in the next page. - name: search_channel_types in: query type: string description: The type of channel to include or exclude in the search. For example `private` will search private channels, while `private_exclude` will exclude them. For a fu - name: sort in: query type: string description: Possible values are `relevant` (search ranking based on what we think is closest), `name` (alphabetical), `member_count` (number of users in the channel), and ` - name: sort_dir in: query type: string description: Sort direction. Possible values are `asc` for ascending order like (1, 2, 3) or (a, b, c), and `desc` for descending order like (3, 2, 1) or (c, b, a) - name: admin.conversations.setConversationPrefs path: /admin.conversations.setConversationPrefs operations: - name: postadminconversationssetconversationprefs method: POST description: Slack Post Admin Conversations Setconversationprefs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `admin.conversations:write`' required: true - name: body in: body type: object description: Request body (JSON). required: true - name: admin.conversations.setTeams path: /admin.conversations.setTeams operations: - name: postadminconversationssetteams method: POST description: Slack Post Admin Conversations Setteams outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `admin.conversations:write`' required: true - name: body in: body type: object description: Request body (JSON). required: true - name: admin.conversations.unarchive path: /admin.conversations.unarchive operations: - name: postadminconversationsunarchive method: POST description: Slack Post Admin Conversations Unarchive outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: header type: string description: 'Authentication token. Requires scope: `admin.conversations:write`' required: true - name: body in: body type: object description: Request body (JSON). required: true exposes: - type: rest namespace: admin-conversations-rest port: 8080 description: REST adapter for Slack Admin API — Conversations. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/admin-conversations-archive name: admin-conversations-archive description: REST surface for admin.conversations.archive. operations: - method: POST name: postadminconversationsarchive description: Slack Post Admin Conversations Archive call: admin-conversations.postadminconversationsarchive with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/admin-conversations-converttoprivate name: admin-conversations-converttoprivate description: REST surface for admin.conversations.convertToPrivate. operations: - method: POST name: postadminconversationsconverttoprivate description: Slack Post Admin Conversations Converttoprivate call: admin-conversations.postadminconversationsconverttoprivate with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/admin-conversations-create name: admin-conversations-create description: REST surface for admin.conversations.create. operations: - method: POST name: postadminconversationscreate description: Slack Post Admin Conversations Create call: admin-conversations.postadminconversationscreate with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/admin-conversations-delete name: admin-conversations-delete description: REST surface for admin.conversations.delete. operations: - method: POST name: postadminconversationsdelete description: Slack Post Admin Conversations Delete call: admin-conversations.postadminconversationsdelete with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/admin-conversations-disconnectshared name: admin-conversations-disconnectshared description: REST surface for admin.conversations.disconnectShared. operations: - method: POST name: postadminconversationsdisconnectshared description: Slack Post Admin Conversations Disconnectshared call: admin-conversations.postadminconversationsdisconnectshared with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/admin-conversations-ekm-listoriginalconnectedchannelinfo name: admin-conversations-ekm-listoriginalconnectedchannelinfo description: REST surface for admin.conversations.ekm.listOriginalConnectedChannelInfo. operations: - method: GET name: getadminconversationsekmlistoriginalconnectedchannelinfo description: Slack Get Admin Conversations Ekm Listoriginalconnectedchannelinfo call: admin-conversations.getadminconversationsekmlistoriginalconnectedchannelinfo with: token: rest.token channel_ids: rest.channel_ids team_ids: rest.team_ids limit: rest.limit cursor: rest.cursor outputParameters: - type: object mapping: $. - path: /v1/admin-conversations-getconversationprefs name: admin-conversations-getconversationprefs description: REST surface for admin.conversations.getConversationPrefs. operations: - method: GET name: getadminconversationsgetconversationprefs description: Slack Get Admin Conversations Getconversationprefs call: admin-conversations.getadminconversationsgetconversationprefs with: token: rest.token channel_id: rest.channel_id outputParameters: - type: object mapping: $. - path: /v1/admin-conversations-getteams name: admin-conversations-getteams description: REST surface for admin.conversations.getTeams. operations: - method: GET name: getadminconversationsgetteams description: Slack Get Admin Conversations Getteams call: admin-conversations.getadminconversationsgetteams with: token: rest.token channel_id: rest.channel_id cursor: rest.cursor limit: rest.limit outputParameters: - type: object mapping: $. - path: /v1/admin-conversations-invite name: admin-conversations-invite description: REST surface for admin.conversations.invite. operations: - method: POST name: postadminconversationsinvite description: Slack Post Admin Conversations Invite call: admin-conversations.postadminconversationsinvite with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/admin-conversations-rename name: admin-conversations-rename description: REST surface for admin.conversations.rename. operations: - method: POST name: postadminconversationsrename description: Slack Post Admin Conversations Rename call: admin-conversations.postadminconversationsrename with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/admin-conversations-restrictaccess-addgroup name: admin-conversations-restrictaccess-addgroup description: REST surface for admin.conversations.restrictAccess.addGroup. operations: - method: POST name: postadminconversationsrestrictaccessaddgroup description: Slack Post Admin Conversations Restrictaccess Addgroup call: admin-conversations.postadminconversationsrestrictaccessaddgroup with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/admin-conversations-restrictaccess-listgroups name: admin-conversations-restrictaccess-listgroups description: REST surface for admin.conversations.restrictAccess.listGroups. operations: - method: GET name: getadminconversationsrestrictaccesslistgroups description: Slack Get Admin Conversations Restrictaccess Listgroups call: admin-conversations.getadminconversationsrestrictaccesslistgroups with: token: rest.token channel_id: rest.channel_id team_id: rest.team_id outputParameters: - type: object mapping: $. - path: /v1/admin-conversations-restrictaccess-removegroup name: admin-conversations-restrictaccess-removegroup description: REST surface for admin.conversations.restrictAccess.removeGroup. operations: - method: POST name: postadminconversationsrestrictaccessremovegroup description: Slack Post Admin Conversations Restrictaccess Removegroup call: admin-conversations.postadminconversationsrestrictaccessremovegroup with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/admin-conversations-search name: admin-conversations-search description: REST surface for admin.conversations.search. operations: - method: GET name: getadminconversationssearch description: Slack Get Admin Conversations Search call: admin-conversations.getadminconversationssearch with: token: rest.token team_ids: rest.team_ids query: rest.query limit: rest.limit cursor: rest.cursor search_channel_types: rest.search_channel_types sort: rest.sort sort_dir: rest.sort_dir outputParameters: - type: object mapping: $. - path: /v1/admin-conversations-setconversationprefs name: admin-conversations-setconversationprefs description: REST surface for admin.conversations.setConversationPrefs. operations: - method: POST name: postadminconversationssetconversationprefs description: Slack Post Admin Conversations Setconversationprefs call: admin-conversations.postadminconversationssetconversationprefs with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/admin-conversations-setteams name: admin-conversations-setteams description: REST surface for admin.conversations.setTeams. operations: - method: POST name: postadminconversationssetteams description: Slack Post Admin Conversations Setteams call: admin-conversations.postadminconversationssetteams with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - path: /v1/admin-conversations-unarchive name: admin-conversations-unarchive description: REST surface for admin.conversations.unarchive. operations: - method: POST name: postadminconversationsunarchive description: Slack Post Admin Conversations Unarchive call: admin-conversations.postadminconversationsunarchive with: token: rest.token body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: admin-conversations-mcp port: 9090 transport: http description: MCP adapter for Slack Admin API — Conversations. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: slack-post-admin-conversations-archive description: Slack Post Admin Conversations Archive hints: readOnly: false destructive: false idempotent: false call: admin-conversations.postadminconversationsarchive with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-admin-conversations-converttoprivate description: Slack Post Admin Conversations Converttoprivate hints: readOnly: false destructive: false idempotent: false call: admin-conversations.postadminconversationsconverttoprivate with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-admin-conversations-create description: Slack Post Admin Conversations Create hints: readOnly: false destructive: false idempotent: false call: admin-conversations.postadminconversationscreate with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-admin-conversations-delete description: Slack Post Admin Conversations Delete hints: readOnly: false destructive: false idempotent: false call: admin-conversations.postadminconversationsdelete with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-admin-conversations-disconnectshared description: Slack Post Admin Conversations Disconnectshared hints: readOnly: false destructive: false idempotent: false call: admin-conversations.postadminconversationsdisconnectshared with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-get-admin-conversations-ekm description: Slack Get Admin Conversations Ekm Listoriginalconnectedchannelinfo hints: readOnly: true destructive: false idempotent: true call: admin-conversations.getadminconversationsekmlistoriginalconnectedchannelinfo with: token: tools.token channel_ids: tools.channel_ids team_ids: tools.team_ids limit: tools.limit cursor: tools.cursor outputParameters: - type: object mapping: $. - name: slack-get-admin-conversations-getconversationprefs description: Slack Get Admin Conversations Getconversationprefs hints: readOnly: true destructive: false idempotent: true call: admin-conversations.getadminconversationsgetconversationprefs with: token: tools.token channel_id: tools.channel_id outputParameters: - type: object mapping: $. - name: slack-get-admin-conversations-getteams description: Slack Get Admin Conversations Getteams hints: readOnly: true destructive: false idempotent: true call: admin-conversations.getadminconversationsgetteams with: token: tools.token channel_id: tools.channel_id cursor: tools.cursor limit: tools.limit outputParameters: - type: object mapping: $. - name: slack-post-admin-conversations-invite description: Slack Post Admin Conversations Invite hints: readOnly: false destructive: false idempotent: false call: admin-conversations.postadminconversationsinvite with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-admin-conversations-rename description: Slack Post Admin Conversations Rename hints: readOnly: false destructive: false idempotent: false call: admin-conversations.postadminconversationsrename with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-admin-conversations-restrictaccess description: Slack Post Admin Conversations Restrictaccess Addgroup hints: readOnly: false destructive: false idempotent: false call: admin-conversations.postadminconversationsrestrictaccessaddgroup with: body: tools.body outputParameters: - type: object mapping: $. - name: slack-get-admin-conversations-restrictaccess description: Slack Get Admin Conversations Restrictaccess Listgroups hints: readOnly: true destructive: false idempotent: true call: admin-conversations.getadminconversationsrestrictaccesslistgroups with: token: tools.token channel_id: tools.channel_id team_id: tools.team_id outputParameters: - type: object mapping: $. - name: slack-post-admin-conversations-restrictaccess-2 description: Slack Post Admin Conversations Restrictaccess Removegroup hints: readOnly: false destructive: false idempotent: false call: admin-conversations.postadminconversationsrestrictaccessremovegroup with: body: tools.body outputParameters: - type: object mapping: $. - name: slack-get-admin-conversations-search description: Slack Get Admin Conversations Search hints: readOnly: true destructive: false idempotent: true call: admin-conversations.getadminconversationssearch with: token: tools.token team_ids: tools.team_ids query: tools.query limit: tools.limit cursor: tools.cursor search_channel_types: tools.search_channel_types sort: tools.sort sort_dir: tools.sort_dir outputParameters: - type: object mapping: $. - name: slack-post-admin-conversations-setconversationprefs description: Slack Post Admin Conversations Setconversationprefs hints: readOnly: false destructive: false idempotent: false call: admin-conversations.postadminconversationssetconversationprefs with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-admin-conversations-setteams description: Slack Post Admin Conversations Setteams hints: readOnly: false destructive: false idempotent: false call: admin-conversations.postadminconversationssetteams with: token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: slack-post-admin-conversations-unarchive description: Slack Post Admin Conversations Unarchive hints: readOnly: false destructive: false idempotent: false call: admin-conversations.postadminconversationsunarchive with: token: tools.token body: tools.body outputParameters: - type: object mapping: $.