From e431e625f92c8e0e8ab29b3c8f6655f270e47850 Mon Sep 17 00:00:00 2001 From: Jerry Dollens Date: Thu, 17 Sep 2026 14:20:26 -0500 Subject: [PATCH] fix(slack): remove redundant token parameter from operations Every operation already authenticates via the botToken security scheme (components.securitySchemes.botToken, http/bearer). The per-operation `token` parameter (header on write operations, query on several read operations) duplicated that, causing platform to expect a token input on every task instead of relying on the configured integration credential. --- Slack/OpenAPIs/slack_web_api-latest.json | 622 ++--------------------- 1 file changed, 38 insertions(+), 584 deletions(-) diff --git a/Slack/OpenAPIs/slack_web_api-latest.json b/Slack/OpenAPIs/slack_web_api-latest.json index 7ff0953b..62ba1f85 100644 --- a/Slack/OpenAPIs/slack_web_api-latest.json +++ b/Slack/OpenAPIs/slack_web_api-latest.json @@ -24,17 +24,7 @@ "url": "https://api.slack.com/methods/chat.postMessage" }, "operationId": "chat_postMessage", - "parameters": [ - { - "description": "Authentication token. Requires scope: `chat:write`", - "in": "header", - "name": "token", - "required": true, - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -236,17 +226,7 @@ "url": "https://api.slack.com/methods/chat.postEphemeral" }, "operationId": "chat_postEphemeral", - "parameters": [ - { - "description": "Authentication token. Requires scope: `chat:write`", - "in": "header", - "name": "token", - "required": true, - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -422,17 +402,7 @@ "url": "https://api.slack.com/methods/chat.update" }, "operationId": "chat_update", - "parameters": [ - { - "description": "Authentication token. Requires scope: `chat:write`", - "in": "header", - "name": "token", - "required": true, - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -628,16 +598,7 @@ "url": "https://api.slack.com/methods/chat.delete" }, "operationId": "chat_delete", - "parameters": [ - { - "description": "Authentication token. Requires scope: `chat:write`", - "in": "header", - "name": "token", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -774,16 +735,7 @@ "url": "https://api.slack.com/methods/chat.scheduleMessage" }, "operationId": "chat_scheduleMessage", - "parameters": [ - { - "description": "Authentication token. Requires scope: `chat:write`", - "in": "header", - "name": "token", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -1026,17 +978,7 @@ "url": "https://api.slack.com/methods/chat.deleteScheduledMessage" }, "operationId": "chat_deleteScheduledMessage", - "parameters": [ - { - "description": "Authentication token. Requires scope: `chat:write`", - "in": "header", - "name": "token", - "required": true, - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -1170,14 +1112,6 @@ }, "operationId": "chat_scheduledMessages_list", "parameters": [ - { - "description": "Authentication token. Requires scope: `none`", - "in": "header", - "name": "token", - "schema": { - "type": "string" - } - }, { "description": "The channel of the scheduled messages", "in": "query", @@ -1383,15 +1317,6 @@ }, "operationId": "chat_getPermalink", "parameters": [ - { - "description": "Authentication token. Requires scope: `none`", - "in": "query", - "name": "token", - "required": true, - "schema": { - "type": "string" - } - }, { "description": "The ID of the conversation or channel containing the message", "in": "query", @@ -1524,16 +1449,7 @@ "url": "https://api.slack.com/methods/chat.meMessage" }, "operationId": "chat_meMessage", - "parameters": [ - { - "description": "Authentication token. Requires scope: `chat:write`", - "in": "header", - "name": "token", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -1667,16 +1583,7 @@ "url": "https://api.slack.com/methods/conversations.create" }, "operationId": "conversations_create", - "parameters": [ - { - "description": "Authentication token. Requires scope: `conversations:write`", - "in": "header", - "name": "token", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -1855,14 +1762,6 @@ }, "operationId": "conversations_list", "parameters": [ - { - "description": "Authentication token. Requires scope: `conversations:read`", - "in": "query", - "name": "token", - "schema": { - "type": "string" - } - }, { "description": "Set to `true` to exclude archived channels from the list", "in": "query", @@ -2090,14 +1989,6 @@ }, "operationId": "conversations_info", "parameters": [ - { - "description": "Authentication token. Requires scope: `conversations:read`", - "in": "query", - "name": "token", - "schema": { - "type": "string" - } - }, { "description": "Conversation ID to learn more about", "in": "query", @@ -2272,14 +2163,6 @@ }, "operationId": "conversations_history", "parameters": [ - { - "description": "Authentication token. Requires scope: `conversations:history`", - "in": "query", - "name": "token", - "schema": { - "type": "string" - } - }, { "description": "Conversation ID to fetch history for.", "in": "query", @@ -2488,14 +2371,6 @@ }, "operationId": "conversations_replies", "parameters": [ - { - "description": "Authentication token. Requires scope: `conversations:history`", - "in": "query", - "name": "token", - "schema": { - "type": "string" - } - }, { "description": "Conversation ID to fetch thread from.", "in": "query", @@ -2827,14 +2702,6 @@ }, "operationId": "conversations_members", "parameters": [ - { - "description": "Authentication token. Requires scope: `conversations:read`", - "in": "query", - "name": "token", - "schema": { - "type": "string" - } - }, { "description": "ID of the conversation to retrieve members for", "in": "query", @@ -2990,16 +2857,7 @@ "url": "https://api.slack.com/methods/conversations.invite" }, "operationId": "conversations_invite", - "parameters": [ - { - "description": "Authentication token. Requires scope: `conversations:write`", - "in": "header", - "name": "token", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -3239,16 +3097,7 @@ "url": "https://api.slack.com/methods/conversations.kick" }, "operationId": "conversations_kick", - "parameters": [ - { - "description": "Authentication token. Requires scope: `conversations:write`", - "in": "header", - "name": "token", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -3379,16 +3228,7 @@ "url": "https://api.slack.com/methods/conversations.join" }, "operationId": "conversations_join", - "parameters": [ - { - "description": "Authentication token. Requires scope: `channels:write`", - "in": "header", - "name": "token", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -3574,16 +3414,7 @@ "url": "https://api.slack.com/methods/conversations.leave" }, "operationId": "conversations_leave", - "parameters": [ - { - "description": "Authentication token. Requires scope: `conversations:write`", - "in": "header", - "name": "token", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -3718,16 +3549,7 @@ "url": "https://api.slack.com/methods/conversations.archive" }, "operationId": "conversations_archive", - "parameters": [ - { - "description": "Authentication token. Requires scope: `conversations:write`", - "in": "header", - "name": "token", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -3857,16 +3679,7 @@ "url": "https://api.slack.com/methods/conversations.unarchive" }, "operationId": "conversations_unarchive", - "parameters": [ - { - "description": "Authentication token. Requires scope: `conversations:write`", - "in": "header", - "name": "token", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -3993,16 +3806,7 @@ "url": "https://api.slack.com/methods/conversations.rename" }, "operationId": "conversations_rename", - "parameters": [ - { - "description": "Authentication token. Requires scope: `conversations:write`", - "in": "header", - "name": "token", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -4179,16 +3983,7 @@ "url": "https://api.slack.com/methods/conversations.setPurpose" }, "operationId": "conversations_setPurpose", - "parameters": [ - { - "description": "Authentication token. Requires scope: `conversations:write`", - "in": "header", - "name": "token", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -4321,16 +4116,7 @@ "url": "https://api.slack.com/methods/conversations.setTopic" }, "operationId": "conversations_setTopic", - "parameters": [ - { - "description": "Authentication token. Requires scope: `conversations:write`", - "in": "header", - "name": "token", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -4463,16 +4249,7 @@ "url": "https://api.slack.com/methods/conversations.open" }, "operationId": "conversations_open", - "parameters": [ - { - "description": "Authentication token. Requires scope: `conversations:write`", - "in": "header", - "name": "token", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -4656,16 +4433,7 @@ "url": "https://api.slack.com/methods/conversations.close" }, "operationId": "conversations_close", - "parameters": [ - { - "description": "Authentication token. Requires scope: `conversations:write`", - "in": "header", - "name": "token", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -4793,16 +4561,7 @@ "url": "https://api.slack.com/methods/conversations.mark" }, "operationId": "conversations_mark", - "parameters": [ - { - "description": "Authentication token. Requires scope: `conversations:write`", - "in": "header", - "name": "token", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -4930,14 +4689,6 @@ }, "operationId": "users_list", "parameters": [ - { - "description": "Authentication token. Requires scope: `users:read`", - "in": "query", - "name": "token", - "schema": { - "type": "string" - } - }, { "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. Providing no `limit` value will result in Slack attempting to deliver you the entire result set. If the collection is too large you may experience `limit_required` or HTTP 500 errors.", "in": "query", @@ -5163,15 +4914,6 @@ }, "operationId": "users_info", "parameters": [ - { - "description": "Authentication token. Requires scope: `users:read`", - "in": "query", - "name": "token", - "required": true, - "schema": { - "type": "string" - } - }, { "description": "Set this to `true` to receive the locale for this user. Defaults to `false`", "in": "query", @@ -5329,15 +5071,6 @@ }, "operationId": "users_lookupByEmail", "parameters": [ - { - "description": "Authentication token. Requires scope: `users:read.email`", - "in": "query", - "name": "token", - "required": true, - "schema": { - "type": "string" - } - }, { "description": "An email address belonging to a user in the workspace", "in": "query", @@ -5490,14 +5223,6 @@ }, "operationId": "users_conversations", "parameters": [ - { - "description": "Authentication token. Requires scope: `conversations:read`", - "in": "query", - "name": "token", - "schema": { - "type": "string" - } - }, { "description": "Browse conversations by a specific user ID's membership. Non-public channels are restricted to those where the calling user shares membership.", "in": "query", @@ -5730,16 +5455,7 @@ "url": "https://api.slack.com/methods/users.identity" }, "operationId": "users_identity", - "parameters": [ - { - "description": "Authentication token. Requires scope: `identity.basic`", - "in": "query", - "name": "token", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "responses": { "200": { "description": "You will receive at a minimum the following information:", @@ -6097,15 +5813,6 @@ }, "operationId": "users_getPresence", "parameters": [ - { - "description": "Authentication token. Requires scope: `users:read`", - "in": "query", - "name": "token", - "required": true, - "schema": { - "type": "string" - } - }, { "description": "User to get presence info on. Defaults to the authed user.", "in": "query", @@ -6213,17 +5920,7 @@ "url": "https://api.slack.com/methods/users.setPresence" }, "operationId": "users_setPresence", - "parameters": [ - { - "description": "Authentication token. Requires scope: `users:write`", - "in": "header", - "name": "token", - "required": true, - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -6345,15 +6042,6 @@ }, "operationId": "users_profile_get", "parameters": [ - { - "description": "Authentication token. Requires scope: `users.profile:read`", - "in": "query", - "name": "token", - "required": true, - "schema": { - "type": "string" - } - }, { "description": "Include labels for each ID in custom profile fields", "in": "query", @@ -6497,17 +6185,7 @@ "url": "https://api.slack.com/methods/users.profile.set" }, "operationId": "users_profile_set", - "parameters": [ - { - "description": "Authentication token. Requires scope: `users.profile:write`", - "in": "header", - "name": "token", - "required": true, - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -6883,14 +6561,6 @@ }, "operationId": "files_list", "parameters": [ - { - "description": "Authentication token. Requires scope: `files:read`", - "in": "query", - "name": "token", - "schema": { - "type": "string" - } - }, { "description": "Filter files created by a single user.", "in": "query", @@ -7160,14 +6830,6 @@ }, "operationId": "files_info", "parameters": [ - { - "description": "Authentication token. Requires scope: `files:read`", - "in": "query", - "name": "token", - "schema": { - "type": "string" - } - }, { "description": "Specify a file by providing its ID.", "in": "query", @@ -7393,16 +7055,7 @@ "url": "https://api.slack.com/methods/files.delete" }, "operationId": "files_delete", - "parameters": [ - { - "description": "Authentication token. Requires scope: `files:write:user`", - "in": "header", - "name": "token", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -7518,17 +7171,7 @@ "url": "https://api.slack.com/methods/reactions.add" }, "operationId": "reactions_add", - "parameters": [ - { - "description": "Authentication token. Requires scope: `reactions:write`", - "in": "header", - "name": "token", - "required": true, - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -7662,17 +7305,7 @@ "url": "https://api.slack.com/methods/reactions.remove" }, "operationId": "reactions_remove", - "parameters": [ - { - "description": "Authentication token. Requires scope: `reactions:write`", - "in": "header", - "name": "token", - "required": true, - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -7814,15 +7447,6 @@ }, "operationId": "reactions_get", "parameters": [ - { - "description": "Authentication token. Requires scope: `reactions:read`", - "in": "query", - "name": "token", - "required": true, - "schema": { - "type": "string" - } - }, { "description": "Channel where the message to get reactions for was posted.", "in": "query", @@ -8059,15 +7683,6 @@ }, "operationId": "reactions_list", "parameters": [ - { - "description": "Authentication token. Requires scope: `reactions:read`", - "in": "query", - "name": "token", - "required": true, - "schema": { - "type": "string" - } - }, { "description": "Show reactions made by this user. Defaults to the authed user.", "in": "query", @@ -8383,17 +7998,7 @@ "url": "https://api.slack.com/methods/pins.add" }, "operationId": "pins_add", - "parameters": [ - { - "description": "Authentication token. Requires scope: `pins:write`", - "in": "header", - "name": "token", - "required": true, - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -8522,17 +8127,7 @@ "url": "https://api.slack.com/methods/pins.remove" }, "operationId": "pins_remove", - "parameters": [ - { - "description": "Authentication token. Requires scope: `pins:write`", - "in": "header", - "name": "token", - "required": true, - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -8661,15 +8256,6 @@ }, "operationId": "pins_list", "parameters": [ - { - "description": "Authentication token. Requires scope: `pins:read`", - "in": "query", - "name": "token", - "required": true, - "schema": { - "type": "string" - } - }, { "description": "Channel to get pinned items for.", "in": "query", @@ -8890,17 +8476,7 @@ "url": "https://api.slack.com/methods/usergroups.create" }, "operationId": "usergroups_create", - "parameters": [ - { - "description": "Authentication token. Requires scope: `usergroups:write`", - "in": "header", - "name": "token", - "required": true, - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -9051,15 +8627,6 @@ "type": "boolean" } }, - { - "description": "Authentication token. Requires scope: `usergroups:read`", - "in": "query", - "name": "token", - "required": true, - "schema": { - "type": "string" - } - }, { "description": "Include the number of users in each User Group.", "in": "query", @@ -9253,17 +8820,7 @@ "url": "https://api.slack.com/methods/usergroups.update" }, "operationId": "usergroups_update", - "parameters": [ - { - "description": "Authentication token. Requires scope: `usergroups:write`", - "in": "header", - "name": "token", - "required": true, - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -9436,17 +8993,7 @@ "url": "https://api.slack.com/methods/usergroups.disable" }, "operationId": "usergroups_disable", - "parameters": [ - { - "description": "Authentication token. Requires scope: `usergroups:write`", - "in": "header", - "name": "token", - "required": true, - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -9576,17 +9123,7 @@ "url": "https://api.slack.com/methods/usergroups.enable" }, "operationId": "usergroups_enable", - "parameters": [ - { - "description": "Authentication token. Requires scope: `usergroups:write`", - "in": "header", - "name": "token", - "required": true, - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -9718,15 +9255,6 @@ }, "operationId": "usergroups_users_list", "parameters": [ - { - "description": "Authentication token. Requires scope: `usergroups:read`", - "in": "query", - "name": "token", - "required": true, - "schema": { - "type": "string" - } - }, { "description": "Allow results that involve disabled User Groups.", "in": "query", @@ -9861,17 +9389,7 @@ "url": "https://api.slack.com/methods/usergroups.users.update" }, "operationId": "usergroups_users_update", - "parameters": [ - { - "description": "Authentication token. Requires scope: `usergroups:write`", - "in": "header", - "name": "token", - "required": true, - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -10034,17 +9552,7 @@ "url": "https://api.slack.com/methods/reminders.add" }, "operationId": "reminders_add", - "parameters": [ - { - "description": "Authentication token. Requires scope: `reminders:write`", - "in": "header", - "name": "token", - "required": true, - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -10184,16 +9692,7 @@ "url": "https://api.slack.com/methods/reminders.complete" }, "operationId": "reminders_complete", - "parameters": [ - { - "description": "Authentication token. Requires scope: `reminders:write`", - "in": "header", - "name": "token", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -10313,16 +9812,7 @@ "url": "https://api.slack.com/methods/reminders.delete" }, "operationId": "reminders_delete", - "parameters": [ - { - "description": "Authentication token. Requires scope: `reminders:write`", - "in": "header", - "name": "token", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "content": { "application/x-www-form-urlencoded": { @@ -10441,14 +9931,6 @@ }, "operationId": "reminders_info", "parameters": [ - { - "description": "Authentication token. Requires scope: `reminders:read`", - "in": "query", - "name": "token", - "schema": { - "type": "string" - } - }, { "description": "The ID of the reminder", "in": "query", @@ -10564,16 +10046,7 @@ "url": "https://api.slack.com/methods/reminders.list" }, "operationId": "reminders_list", - "parameters": [ - { - "description": "Authentication token. Requires scope: `reminders:read`", - "in": "query", - "name": "token", - "schema": { - "type": "string" - } - } - ], + "parameters": [], "responses": { "200": { "description": "Typical success response", @@ -10683,15 +10156,6 @@ }, "operationId": "team_info", "parameters": [ - { - "description": "Authentication token. Requires scope: `team:read`", - "in": "query", - "name": "token", - "required": true, - "schema": { - "type": "string" - } - }, { "description": "Team to get info on, if omitted, will return information about the current team. Will only return team that the authenticated token is allowed to see through external shared channels", "in": "query", @@ -10821,17 +10285,7 @@ "url": "https://api.slack.com/methods/auth.test" }, "operationId": "auth_test", - "parameters": [ - { - "description": "Authentication token. Requires scope: `none`", - "in": "header", - "name": "token", - "required": true, - "schema": { - "type": "string" - } - } - ], + "parameters": [], "responses": { "200": { "description": "Standard success response when used with a user token",