openapi: 3.1.0 info: title: Slack Web API description: >- The Slack Web API is an HTTP-based interface that provides access to all of Slack's platform features. It consists of over 200 methods organized by functional area (chat, conversations, users, files, admin, and more) that apps call over HTTPS with JSON payloads and receive JSON responses. All methods require authentication via OAuth tokens (bot or user) with granular permission scopes, and are subject to tiered rate limits. The Web API supports cursor-based pagination for large result sets and provides consistent error handling across all endpoints. version: 1.0.0 termsOfService: https://slack.com/terms-of-service/api contact: name: Slack Developer Support url: https://docs.slack.dev license: name: Slack API Terms of Service url: https://slack.com/terms-of-service/api servers: - url: https://slack.com/api description: Slack Web API production server security: - bearerAuth: [] tags: - name: Auth description: Authentication and authorization methods - name: Bookmarks description: Manage channel bookmarks - name: Chat description: Post, update, delete, and manage messages - name: Conversations description: Manage channels, DMs, and group conversations - name: Dnd description: Do Not Disturb management - name: Emoji description: List custom emoji - name: Files description: Upload, share, and manage files - name: Pins description: Pin and unpin messages in conversations - name: Reactions description: Add and manage emoji reactions - name: Reminders description: Create and manage reminders - name: Search description: Search messages and files - name: Team description: Access workspace information - name: Usergroups description: Manage user groups - name: Users description: Find and manage user information - name: Views description: Open, update, and manage modals and App Home tabs paths: /auth.test: post: tags: - Auth summary: Slack Test Authentication description: >- Checks authentication and tells the caller who they are. Returns information about the token holder including user ID, team ID, and team name. operationId: authTest externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/auth.test responses: '200': description: Successful authentication test content: application/json: schema: type: object properties: ok: type: boolean url: type: string description: URL of the team team: type: string description: Team name user: type: string description: User name team_id: type: string description: Team ID user_id: type: string description: User ID bot_id: type: string description: Bot user ID (if token belongs to a bot) is_enterprise_install: type: boolean description: Whether this is an enterprise install required: - ok x-microcks-operation: delay: 0 dispatcher: FALLBACK /auth.revoke: post: tags: - Auth summary: Slack Revoke an Access Token description: Revokes the access token that is used to call this method. operationId: authRevoke externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/auth.revoke parameters: - name: test in: query description: Setting this parameter to true triggers a testing mode. schema: type: boolean responses: '200': description: Token revoked content: application/json: schema: type: object properties: ok: type: boolean revoked: type: boolean x-microcks-operation: delay: 0 dispatcher: FALLBACK /chat.postMessage: post: tags: - Chat summary: Slack Send a Message to a Channel description: >- Sends a message to a channel, DM, or group conversation. Supports plain text, Block Kit layouts, attachments, threading, and message metadata. Requires the chat:write scope, or chat:write.public to post to channels the bot is not a member of. operationId: chatPostMessage externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/chat.postMessage parameters: - name: token in: header description: 'Authentication token. Requires scope: chat:write' schema: type: string requestBody: required: true content: application/json: schema: type: object required: - channel properties: channel: type: string description: >- Channel, private group, or IM channel to send message to. Can be an encoded ID or a name. text: type: string description: >- The text of the message. Required when not providing blocks or attachments. Used as fallback text for notifications. blocks: type: array description: >- A JSON array of Block Kit layout blocks. items: type: object attachments: type: array description: A JSON array of structured attachments. items: type: object thread_ts: type: string description: >- Provide another message's ts value to make this message a reply in a thread. reply_broadcast: type: boolean description: >- Used in conjunction with thread_ts to indicate whether reply should be made visible in the channel. metadata: type: object description: JSON object with event_type and event_payload fields. properties: event_type: type: string event_payload: type: object mrkdwn: type: boolean description: Enable or disable Slack markup parsing. Defaults to true. parse: type: string description: Change how messages are treated. enum: - full - none link_names: type: boolean description: Find and link user groups. unfurl_links: type: boolean description: Enable unfurling of primarily text-based content. unfurl_media: type: boolean description: Enable unfurling of media content. icon_emoji: type: string description: Emoji to use as the icon for this message. icon_url: type: string format: uri description: URL to an image to use as the icon for this message. username: type: string description: Set your bot's user name. application/x-www-form-urlencoded: schema: type: object required: - channel properties: channel: type: string text: type: string blocks: type: string description: JSON-encoded array of Block Kit blocks. attachments: type: string description: JSON-encoded array of attachments. thread_ts: type: string reply_broadcast: type: boolean mrkdwn: type: boolean parse: type: string link_names: type: boolean unfurl_links: type: boolean unfurl_media: type: boolean responses: '200': description: Message posted successfully content: application/json: schema: type: object properties: ok: type: boolean channel: type: string description: Channel ID where the message was posted ts: type: string description: Timestamp of the posted message message: $ref: '#/components/schemas/Message' required: - ok - channel - ts x-microcks-operation: delay: 0 dispatcher: FALLBACK /chat.update: post: tags: - Chat summary: Slack Update an Existing Message description: >- Updates a message in a channel. Both the text and blocks can be updated. Requires the chat:write scope. operationId: chatUpdate externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/chat.update parameters: - name: token in: header description: 'Authentication token. Requires scope: chat:write' schema: type: string requestBody: required: true content: application/json: schema: type: object required: - channel - ts properties: channel: type: string description: Channel containing the message to be updated. ts: type: string description: Timestamp of the message to be updated. text: type: string description: New text for the message. blocks: type: array description: A JSON array of Block Kit layout blocks. items: type: object attachments: type: array description: A JSON array of structured attachments. items: type: object metadata: type: object description: JSON object with event_type and event_payload fields. parse: type: string enum: - full - none link_names: type: boolean reply_broadcast: type: boolean responses: '200': description: Message updated successfully content: application/json: schema: type: object properties: ok: type: boolean channel: type: string ts: type: string text: type: string message: $ref: '#/components/schemas/Message' x-microcks-operation: delay: 0 dispatcher: FALLBACK /chat.delete: post: tags: - Chat summary: Slack Delete a Message description: >- Deletes a message from a channel. Requires the chat:write scope. The message must have been posted by the calling user or bot. operationId: chatDelete externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/chat.delete parameters: - name: token in: header description: 'Authentication token. Requires scope: chat:write' schema: type: string requestBody: required: true content: application/json: schema: type: object required: - channel - ts properties: channel: type: string description: Channel containing the message to be deleted. ts: type: string description: Timestamp of the message to be deleted. responses: '200': description: Message deleted successfully content: application/json: schema: type: object properties: ok: type: boolean channel: type: string ts: type: string x-microcks-operation: delay: 0 dispatcher: FALLBACK /chat.postEphemeral: post: tags: - Chat summary: Slack Send an Ephemeral Message description: >- Sends an ephemeral message to a user in a channel, visible only to that user. Requires the chat:write scope. operationId: chatPostEphemeral externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/chat.postEphemeral parameters: - name: token in: header schema: type: string requestBody: required: true content: application/json: schema: type: object required: - channel - user properties: channel: type: string description: Channel to send the ephemeral message to. user: type: string description: User ID of the user who will see the message. text: type: string description: The text of the message. blocks: type: array items: type: object attachments: type: array items: type: object thread_ts: type: string description: >- Provide a thread timestamp to send the ephemeral message within a thread. responses: '200': description: Ephemeral message sent content: application/json: schema: type: object properties: ok: type: boolean message_ts: type: string x-microcks-operation: delay: 0 dispatcher: FALLBACK /chat.scheduleMessage: post: tags: - Chat summary: Slack Schedule a Message for Later description: >- Schedules a message to be sent to a channel at a specified time. Requires the chat:write scope. operationId: chatScheduleMessage externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/chat.scheduleMessage requestBody: required: true content: application/json: schema: type: object required: - channel - post_at properties: channel: type: string description: Channel to send the scheduled message to. post_at: type: integer description: Unix timestamp for when the message should be sent. text: type: string description: The text of the message. blocks: type: array items: type: object attachments: type: array items: type: object thread_ts: type: string metadata: type: object unfurl_links: type: boolean unfurl_media: type: boolean responses: '200': description: Message scheduled content: application/json: schema: type: object properties: ok: type: boolean channel: type: string scheduled_message_id: type: string post_at: type: integer message: $ref: '#/components/schemas/Message' x-microcks-operation: delay: 0 dispatcher: FALLBACK /chat.getPermalink: get: tags: - Chat summary: Slack Get a Permalink for a Message description: Retrieve a permalink URL for a specific extant message. operationId: chatGetPermalink externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/chat.getPermalink parameters: - name: channel in: query required: true schema: type: string description: The ID of the conversation or channel containing the message. - name: message_ts in: query required: true schema: type: string description: A message's ts value. responses: '200': description: Permalink retrieved content: application/json: schema: type: object properties: ok: type: boolean channel: type: string permalink: type: string format: uri x-microcks-operation: delay: 0 dispatcher: FALLBACK /chat.unfurl: post: tags: - Chat summary: Slack Provide Custom Unfurl Behavior description: >- Provide custom unfurl behavior for URLs posted in messages. Requires links:write scope. operationId: chatUnfurl externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/chat.unfurl requestBody: required: true content: application/json: schema: type: object required: - channel - ts - unfurls properties: channel: type: string ts: type: string unfurls: type: object description: >- A map of URL to unfurl content in Block Kit or attachment format. user_auth_message: type: string user_auth_required: type: boolean user_auth_url: type: string format: uri responses: '200': description: Unfurl provided content: application/json: schema: type: object properties: ok: type: boolean x-microcks-operation: delay: 0 dispatcher: FALLBACK /conversations.list: get: tags: - Conversations summary: Slack List All Channels description: >- Lists all channels in a Slack team. Returns a paginated collection of conversation objects. Supports filtering by conversation type. operationId: conversationsList externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/conversations.list parameters: - name: cursor in: query description: >- Paginate through collections by setting the cursor parameter to a next_cursor attribute returned by a previous request. schema: type: string - name: exclude_archived in: query description: Set to true to exclude archived channels from the list. schema: type: boolean default: false - name: limit in: query 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. Maximum of 1000. schema: type: integer default: 100 maximum: 1000 - name: team_id in: query description: >- Required for org-wide app tokens. A single team ID to list channels in. schema: type: string - name: types in: query description: >- Mix and match channel types by providing a comma-separated list. Options: public_channel, private_channel, mpim, im. schema: type: string default: public_channel responses: '200': description: Channel list retrieved content: application/json: schema: type: object properties: ok: type: boolean channels: type: array items: $ref: '#/components/schemas/Channel' response_metadata: $ref: '#/components/schemas/ResponseMetadata' x-microcks-operation: delay: 0 dispatcher: FALLBACK /conversations.info: get: tags: - Conversations summary: Slack Get Information About a Channel description: >- Retrieve information about a conversation including its purpose, topic, member count, and other metadata. operationId: conversationsInfo externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/conversations.info parameters: - name: channel in: query required: true description: The conversation ID to get info on. schema: type: string - name: include_locale in: query description: Set to true to receive the locale for this conversation. schema: type: boolean default: false - name: include_num_members in: query description: Set to true to include the member count. schema: type: boolean default: false responses: '200': description: Channel information retrieved content: application/json: schema: type: object properties: ok: type: boolean channel: $ref: '#/components/schemas/Channel' x-microcks-operation: delay: 0 dispatcher: FALLBACK /conversations.history: get: tags: - Conversations summary: Slack Fetch Message History description: >- Fetches a conversation's history of messages and events. Returns messages in reverse chronological order. operationId: conversationsHistory externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/conversations.history parameters: - name: channel in: query required: true description: Conversation ID to fetch history for. schema: type: string - name: cursor in: query description: >- Paginate through collections by setting the cursor parameter to a next_cursor attribute returned by a previous request. schema: type: string - name: inclusive in: query description: >- Include messages with oldest or latest timestamps in results. schema: type: boolean default: false - name: latest in: query description: >- Only messages before this Unix timestamp will be included. Default is the current time. schema: type: string - name: limit in: query description: >- The maximum number of items to return. Default 100, max 999. schema: type: integer default: 100 maximum: 999 - name: oldest in: query description: >- Only messages after this Unix timestamp will be included. Default is 0. schema: type: string default: '0' - name: include_all_metadata in: query description: Return all metadata associated with messages. schema: type: boolean default: false responses: '200': description: Conversation history retrieved content: application/json: schema: type: object properties: ok: type: boolean messages: type: array items: $ref: '#/components/schemas/Message' has_more: type: boolean pin_count: type: integer response_metadata: $ref: '#/components/schemas/ResponseMetadata' x-microcks-operation: delay: 0 dispatcher: FALLBACK /conversations.create: post: tags: - Conversations summary: Slack Create a Channel description: >- Initiates a public or private channel-based conversation. Requires conversations:write scope. operationId: conversationsCreate externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/conversations.create requestBody: required: true content: application/json: schema: type: object required: - name properties: name: type: string description: Name of the public or private channel to create. is_private: type: boolean description: Create a private channel instead of a public one. default: false team_id: type: string description: >- Required for org-wide apps. The workspace in which to create the channel. responses: '200': description: Channel created content: application/json: schema: type: object properties: ok: type: boolean channel: $ref: '#/components/schemas/Channel' x-microcks-operation: delay: 0 dispatcher: FALLBACK /conversations.join: post: tags: - Conversations summary: Slack Join an Existing Conversation description: >- Joins an existing conversation. Requires channels:write scope. operationId: conversationsJoin externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/conversations.join requestBody: required: true content: application/json: schema: type: object required: - channel properties: channel: type: string description: ID of conversation to join. responses: '200': description: Joined channel content: application/json: schema: type: object properties: ok: type: boolean channel: $ref: '#/components/schemas/Channel' x-microcks-operation: delay: 0 dispatcher: FALLBACK /conversations.invite: post: tags: - Conversations summary: Slack Invite Users to a Channel description: Invites users to a channel. Requires channels:write scope. operationId: conversationsInvite externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/conversations.invite requestBody: required: true content: application/json: schema: type: object required: - channel - users properties: channel: type: string description: The ID of the public or private channel to invite users to. users: type: string description: >- A comma-separated list of user IDs to invite to the channel. Up to 1000. responses: '200': description: Users invited content: application/json: schema: type: object properties: ok: type: boolean channel: $ref: '#/components/schemas/Channel' x-microcks-operation: delay: 0 dispatcher: FALLBACK /conversations.leave: post: tags: - Conversations summary: Slack Leave a Conversation description: Leaves a conversation. Requires channels:write scope. operationId: conversationsLeave externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/conversations.leave requestBody: required: true content: application/json: schema: type: object required: - channel properties: channel: type: string description: Conversation to leave. responses: '200': description: Left channel content: application/json: schema: type: object properties: ok: type: boolean x-microcks-operation: delay: 0 dispatcher: FALLBACK /conversations.archive: post: tags: - Conversations summary: Slack Archive a Channel description: Archives a conversation. Requires channels:write scope. operationId: conversationsArchive externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/conversations.archive requestBody: required: true content: application/json: schema: type: object required: - channel properties: channel: type: string description: ID of conversation to archive. responses: '200': description: Channel archived content: application/json: schema: type: object properties: ok: type: boolean x-microcks-operation: delay: 0 dispatcher: FALLBACK /conversations.unarchive: post: tags: - Conversations summary: Slack Unarchive a Channel description: Reverses the archiving of a conversation. operationId: conversationsUnarchive externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/conversations.unarchive requestBody: required: true content: application/json: schema: type: object required: - channel properties: channel: type: string description: ID of conversation to unarchive. responses: '200': description: Channel unarchived content: application/json: schema: type: object properties: ok: type: boolean x-microcks-operation: delay: 0 dispatcher: FALLBACK /conversations.members: get: tags: - Conversations summary: Slack List Members of a Conversation description: >- Retrieve members of a conversation. Results are paginated with cursor-based pagination. operationId: conversationsMembers externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/conversations.members parameters: - name: channel in: query required: true description: ID of the conversation to retrieve members for. schema: type: string - name: cursor in: query schema: type: string - name: limit in: query schema: type: integer default: 100 maximum: 1000 responses: '200': description: Members listed content: application/json: schema: type: object properties: ok: type: boolean members: type: array items: type: string description: Array of user IDs. response_metadata: $ref: '#/components/schemas/ResponseMetadata' x-microcks-operation: delay: 0 dispatcher: FALLBACK /conversations.replies: get: tags: - Conversations summary: Slack Retrieve a Thread of Messages description: >- Retrieve a thread of messages posted to a conversation. Returns the parent message and all replies. operationId: conversationsReplies externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/conversations.replies parameters: - name: channel in: query required: true schema: type: string - name: ts in: query required: true description: >- Unique identifier of the parent message. This is the ts value of the parent message. schema: type: string - name: cursor in: query schema: type: string - name: inclusive in: query schema: type: boolean default: false - name: latest in: query schema: type: string - name: limit in: query schema: type: integer default: 100 maximum: 1000 - name: oldest in: query schema: type: string default: '0' responses: '200': description: Thread retrieved content: application/json: schema: type: object properties: ok: type: boolean messages: type: array items: $ref: '#/components/schemas/Message' has_more: type: boolean response_metadata: $ref: '#/components/schemas/ResponseMetadata' x-microcks-operation: delay: 0 dispatcher: FALLBACK /conversations.setTopic: post: tags: - Conversations summary: Slack Set the Topic of a Conversation description: Sets the topic for a conversation. operationId: conversationsSetTopic externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/conversations.setTopic requestBody: required: true content: application/json: schema: type: object required: - channel - topic properties: channel: type: string topic: type: string description: The new topic string. Maximum 250 characters. responses: '200': description: Topic set content: application/json: schema: type: object properties: ok: type: boolean channel: $ref: '#/components/schemas/Channel' x-microcks-operation: delay: 0 dispatcher: FALLBACK /conversations.setPurpose: post: tags: - Conversations summary: Slack Set the Purpose of a Conversation description: Sets the purpose for a conversation. operationId: conversationsSetPurpose externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/conversations.setPurpose requestBody: required: true content: application/json: schema: type: object required: - channel - purpose properties: channel: type: string purpose: type: string description: The new purpose string. Maximum 250 characters. responses: '200': description: Purpose set content: application/json: schema: type: object properties: ok: type: boolean channel: $ref: '#/components/schemas/Channel' x-microcks-operation: delay: 0 dispatcher: FALLBACK /conversations.rename: post: tags: - Conversations summary: Slack Rename a Conversation description: Renames a conversation. operationId: conversationsRename externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/conversations.rename requestBody: required: true content: application/json: schema: type: object required: - channel - name properties: channel: type: string name: type: string description: New name for the conversation. responses: '200': description: Channel renamed content: application/json: schema: type: object properties: ok: type: boolean channel: $ref: '#/components/schemas/Channel' x-microcks-operation: delay: 0 dispatcher: FALLBACK /users.list: get: tags: - Users summary: Slack List All Users description: >- Lists all users in a Slack team. Results are paginated with cursor-based pagination. operationId: usersList externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/users.list parameters: - name: cursor in: query schema: type: string - name: include_locale in: query description: Set to true to receive the locale for users. schema: type: boolean default: false - name: limit in: query schema: type: integer default: 100 maximum: 1000 - name: team_id in: query description: Required for org-wide app tokens. schema: type: string responses: '200': description: User list retrieved content: application/json: schema: type: object properties: ok: type: boolean members: type: array items: $ref: '#/components/schemas/User' cache_ts: type: integer response_metadata: $ref: '#/components/schemas/ResponseMetadata' x-microcks-operation: delay: 0 dispatcher: FALLBACK /users.info: get: tags: - Users summary: Slack Get Information About a User description: >- Gets information about a user. Returns a user object with profile information, timezone, admin status, and more. operationId: usersInfo externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/users.info parameters: - name: user in: query required: true description: User to get info on. schema: type: string - name: include_locale in: query description: Set to true to receive the locale for this user. schema: type: boolean default: false responses: '200': description: User information retrieved content: application/json: schema: type: object properties: ok: type: boolean user: $ref: '#/components/schemas/User' x-microcks-operation: delay: 0 dispatcher: FALLBACK /users.lookupByEmail: get: tags: - Users summary: Slack Find a User by Email Address description: >- Find a user with an email address. Requires users:read.email scope. operationId: usersLookupByEmail externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/users.lookupByEmail parameters: - name: email in: query required: true description: An email address belonging to a user in the workspace. schema: type: string format: email responses: '200': description: User found content: application/json: schema: type: object properties: ok: type: boolean user: $ref: '#/components/schemas/User' x-microcks-operation: delay: 0 dispatcher: FALLBACK /users.getPresence: get: tags: - Users summary: Slack Get User Presence Information description: Gets user presence information. operationId: usersGetPresence externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/users.getPresence parameters: - name: user in: query required: true schema: type: string responses: '200': description: Presence retrieved content: application/json: schema: type: object properties: ok: type: boolean presence: type: string enum: - active - away x-microcks-operation: delay: 0 dispatcher: FALLBACK /files.upload: post: tags: - Files summary: Slack Upload a File description: >- Uploads or creates a file. Files can be uploaded as binary content or created from content snippets. operationId: filesUpload externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/files.upload requestBody: content: multipart/form-data: schema: type: object properties: channels: type: string description: Comma-separated list of channel IDs to share the file into. content: type: string description: File contents via a POST variable. file: type: string format: binary description: File contents via multipart/form-data. filename: type: string description: Filename of file. filetype: type: string description: A file type identifier. initial_comment: type: string description: The message text introducing the file. thread_ts: type: string description: >- Provide another message's ts value to upload this file as a reply. title: type: string description: Title of the file. responses: '200': description: File uploaded content: application/json: schema: type: object properties: ok: type: boolean file: $ref: '#/components/schemas/File' x-microcks-operation: delay: 0 dispatcher: FALLBACK /files.list: get: tags: - Files summary: Slack List Files description: >- List files for a team, in a channel, or from a user. Supports filtering and pagination. operationId: filesList externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/files.list parameters: - name: channel in: query description: Filter files appearing in a specific channel. schema: type: string - name: count in: query schema: type: integer default: 100 - name: page in: query schema: type: integer default: 1 - name: ts_from in: query description: Filter files created after this timestamp. schema: type: string - name: ts_to in: query description: Filter files created before this timestamp. schema: type: string - name: types in: query description: >- Filter files by type: all, spaces, snippets, images, gdocs, zips, pdfs. schema: type: string default: all - name: user in: query description: Filter files created by a single user. schema: type: string responses: '200': description: Files listed content: application/json: schema: type: object properties: ok: type: boolean files: type: array items: $ref: '#/components/schemas/File' paging: type: object properties: count: type: integer total: type: integer page: type: integer pages: type: integer x-microcks-operation: delay: 0 dispatcher: FALLBACK /files.info: get: tags: - Files summary: Slack Get Information About a File description: Gets information about a file. operationId: filesInfo externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/files.info parameters: - name: file in: query required: true description: Specify a file by providing its ID. schema: type: string - name: count in: query schema: type: integer default: 100 - name: cursor in: query schema: type: string - name: limit in: query schema: type: integer default: 100 - name: page in: query schema: type: integer default: 1 responses: '200': description: File information retrieved content: application/json: schema: type: object properties: ok: type: boolean file: $ref: '#/components/schemas/File' x-microcks-operation: delay: 0 dispatcher: FALLBACK /files.delete: post: tags: - Files summary: Slack Delete a File description: Deletes a file. operationId: filesDelete externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/files.delete requestBody: required: true content: application/json: schema: type: object required: - file properties: file: type: string description: ID of file to delete. responses: '200': description: File deleted content: application/json: schema: type: object properties: ok: type: boolean x-microcks-operation: delay: 0 dispatcher: FALLBACK /reactions.add: post: tags: - Reactions summary: Slack Add an Emoji Reaction description: >- Adds a reaction (emoji) to a message, file, or file comment. Requires reactions:write scope. operationId: reactionsAdd externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/reactions.add requestBody: required: true content: application/json: schema: type: object required: - channel - name - timestamp properties: channel: type: string description: Channel where the message to add reaction to was posted. name: type: string description: Reaction (emoji) name without colons. timestamp: type: string description: Timestamp of the message to add reaction to. responses: '200': description: Reaction added content: application/json: schema: type: object properties: ok: type: boolean x-microcks-operation: delay: 0 dispatcher: FALLBACK /reactions.remove: post: tags: - Reactions summary: Slack Remove an Emoji Reaction description: Removes a reaction (emoji) from an item. operationId: reactionsRemove externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/reactions.remove requestBody: required: true content: application/json: schema: type: object required: - name properties: channel: type: string name: type: string description: Reaction (emoji) name without colons. timestamp: type: string file: type: string file_comment: type: string responses: '200': description: Reaction removed content: application/json: schema: type: object properties: ok: type: boolean x-microcks-operation: delay: 0 dispatcher: FALLBACK /reactions.get: get: tags: - Reactions summary: Slack Get Reactions for an Item description: Gets reactions for an item (message, file, or file comment). operationId: reactionsGet externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/reactions.get parameters: - name: channel in: query description: Channel where the message to get reactions for was posted. schema: type: string - name: file in: query description: File to get reactions for. schema: type: string - name: file_comment in: query description: File comment to get reactions for. schema: type: string - name: full in: query description: If true, return complete reaction list. schema: type: boolean - name: timestamp in: query description: Timestamp of the message to get reactions for. schema: type: string responses: '200': description: Reactions retrieved content: application/json: schema: type: object properties: ok: type: boolean type: type: string message: $ref: '#/components/schemas/Message' x-microcks-operation: delay: 0 dispatcher: FALLBACK /reactions.list: get: tags: - Reactions summary: Slack List Reactions Made by a User description: >- Lists reactions made by a user. Paginated with cursor-based pagination. operationId: reactionsList externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/reactions.list parameters: - name: count in: query schema: type: integer default: 100 - name: cursor in: query schema: type: string - name: full in: query schema: type: boolean - name: limit in: query schema: type: integer default: 100 - name: page in: query schema: type: integer default: 1 - name: user in: query description: Show reactions made by this user. schema: type: string responses: '200': description: Reactions listed content: application/json: schema: type: object properties: ok: type: boolean items: type: array items: type: object response_metadata: $ref: '#/components/schemas/ResponseMetadata' x-microcks-operation: delay: 0 dispatcher: FALLBACK /pins.add: post: tags: - Pins summary: Slack Pin a Message description: Pins a message to a channel. Requires pins:write scope. operationId: pinsAdd externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/pins.add requestBody: required: true content: application/json: schema: type: object required: - channel - timestamp properties: channel: type: string description: Channel to pin the message in. timestamp: type: string description: Timestamp of the message to pin. responses: '200': description: Message pinned content: application/json: schema: type: object properties: ok: type: boolean x-microcks-operation: delay: 0 dispatcher: FALLBACK /pins.remove: post: tags: - Pins summary: Slack Unpin a Message description: Un-pins a message from a channel. operationId: pinsRemove externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/pins.remove requestBody: required: true content: application/json: schema: type: object required: - channel - timestamp properties: channel: type: string timestamp: type: string responses: '200': description: Message unpinned content: application/json: schema: type: object properties: ok: type: boolean x-microcks-operation: delay: 0 dispatcher: FALLBACK /pins.list: get: tags: - Pins summary: Slack List Pinned Items description: Lists items pinned to a channel. operationId: pinsList externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/pins.list parameters: - name: channel in: query required: true description: Channel to get pinned items for. schema: type: string responses: '200': description: Pinned items listed content: application/json: schema: type: object properties: ok: type: boolean items: type: array items: type: object properties: type: type: string channel: type: string message: $ref: '#/components/schemas/Message' created: type: integer created_by: type: string x-microcks-operation: delay: 0 dispatcher: FALLBACK /search.messages: get: tags: - Search summary: Slack Search for Messages description: >- Searches for messages matching a query. Supports Slack search modifiers such as in:, from:, has:, before:, after:, and is:thread. operationId: searchMessages externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/search.messages parameters: - name: query in: query required: true description: Search query. schema: type: string - name: count in: query schema: type: integer default: 20 - name: highlight in: query description: Pass a value of true to enable query highlight markers. schema: type: boolean - name: page in: query schema: type: integer default: 1 - name: sort in: query description: Return matches sorted by either score or timestamp. schema: type: string enum: - score - timestamp - name: sort_dir in: query description: Change sort direction to ascending or descending. schema: type: string enum: - asc - desc responses: '200': description: Search results returned content: application/json: schema: type: object properties: ok: type: boolean query: type: string messages: type: object properties: total: type: integer pagination: type: object properties: total_count: type: integer page: type: integer per_page: type: integer page_count: type: integer first: type: integer last: type: integer paging: type: object properties: count: type: integer total: type: integer page: type: integer pages: type: integer matches: type: array items: $ref: '#/components/schemas/Message' x-microcks-operation: delay: 0 dispatcher: FALLBACK /search.files: get: tags: - Search summary: Slack Search for Files description: Searches for files matching a query. operationId: searchFiles externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/search.files parameters: - name: query in: query required: true schema: type: string - name: count in: query schema: type: integer default: 20 - name: highlight in: query schema: type: boolean - name: page in: query schema: type: integer default: 1 - name: sort in: query schema: type: string enum: - score - timestamp - name: sort_dir in: query schema: type: string enum: - asc - desc responses: '200': description: Search results returned content: application/json: schema: type: object properties: ok: type: boolean query: type: string files: type: object properties: total: type: integer matches: type: array items: $ref: '#/components/schemas/File' x-microcks-operation: delay: 0 dispatcher: FALLBACK /team.info: get: tags: - Team summary: Slack Get Team Information description: >- Gets information about the current team. Requires team:read scope. operationId: teamInfo externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/team.info parameters: - name: team in: query description: >- Team to get info about; if omitted, will return information about the current team. schema: type: string responses: '200': description: Team info retrieved content: application/json: schema: type: object properties: ok: type: boolean team: type: object properties: id: type: string name: type: string domain: type: string email_domain: type: string icon: type: object properties: image_34: type: string image_44: type: string image_68: type: string image_88: type: string image_102: type: string image_132: type: string image_default: type: boolean enterprise_id: type: string enterprise_name: type: string x-microcks-operation: delay: 0 dispatcher: FALLBACK /views.open: post: tags: - Views summary: Slack Open a Modal View description: >- Open a view for a user by providing a trigger_id received from a slash command, shortcut, or interactive component. operationId: viewsOpen externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/views.open requestBody: required: true content: application/json: schema: type: object required: - trigger_id - view properties: trigger_id: type: string description: >- Exchange a trigger to post to the user. Must be obtained from a slash command, shortcut, or interactive component. view: type: object description: A view payload in JSON format. responses: '200': description: View opened content: application/json: schema: type: object properties: ok: type: boolean view: type: object x-microcks-operation: delay: 0 dispatcher: FALLBACK /views.update: post: tags: - Views summary: Slack Update an Existing View description: Update an existing view. operationId: viewsUpdate externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/views.update requestBody: required: true content: application/json: schema: type: object properties: view_id: type: string description: A unique identifier of the view to be updated. external_id: type: string view: type: object description: A view payload in JSON format. hash: type: string description: >- A string that represents view state to protect against possible race conditions. responses: '200': description: View updated content: application/json: schema: type: object properties: ok: type: boolean view: type: object x-microcks-operation: delay: 0 dispatcher: FALLBACK /views.publish: post: tags: - Views summary: Slack Publish a View to the App Home Tab description: Publish a static view for a user to the App Home tab. operationId: viewsPublish externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/views.publish requestBody: required: true content: application/json: schema: type: object required: - user_id - view properties: user_id: type: string description: ID of the user you want to publish a view to. view: type: object description: A view payload in JSON format. hash: type: string responses: '200': description: View published content: application/json: schema: type: object properties: ok: type: boolean view: type: object x-microcks-operation: delay: 0 dispatcher: FALLBACK /emoji.list: get: tags: - Emoji summary: Slack List Custom Emoji description: >- Lists custom emoji for a team. Returns a map of emoji name to URL. Requires emoji:read scope. operationId: emojiList externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/emoji.list responses: '200': description: Emoji listed content: application/json: schema: type: object properties: ok: type: boolean emoji: type: object additionalProperties: type: string cache_ts: type: integer x-microcks-operation: delay: 0 dispatcher: FALLBACK /reminders.add: post: tags: - Reminders summary: Slack Create a Reminder description: Creates a reminder for a user. operationId: remindersAdd externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/reminders.add requestBody: required: true content: application/json: schema: type: object required: - text - time properties: text: type: string description: The content of the reminder. time: type: string description: >- When this reminder should happen: Unix timestamp, or a human-readable natural language string. user: type: string description: >- The user to receive the reminder. If not specified, defaults to the caller. responses: '200': description: Reminder created content: application/json: schema: type: object properties: ok: type: boolean reminder: type: object properties: id: type: string creator: type: string user: type: string text: type: string recurring: type: boolean time: type: integer complete_ts: type: integer x-microcks-operation: delay: 0 dispatcher: FALLBACK /reminders.list: get: tags: - Reminders summary: Slack List All Reminders description: Lists all reminders created by or for a given user. operationId: remindersList externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/reminders.list responses: '200': description: Reminders listed content: application/json: schema: type: object properties: ok: type: boolean reminders: type: array items: type: object properties: id: type: string creator: type: string user: type: string text: type: string recurring: type: boolean time: type: integer complete_ts: type: integer x-microcks-operation: delay: 0 dispatcher: FALLBACK /bookmarks.add: post: tags: - Bookmarks summary: Slack Add a Bookmark to a Channel description: Adds a bookmark to a channel. operationId: bookmarksAdd externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/bookmarks.add requestBody: required: true content: application/json: schema: type: object required: - channel_id - title - type properties: channel_id: type: string title: type: string description: Title for the bookmark. type: type: string description: Type of the bookmark. Currently only link is supported. enum: - link link: type: string format: uri description: Link to bookmark. emoji: type: string description: Emoji tag to apply to the link. responses: '200': description: Bookmark added content: application/json: schema: type: object properties: ok: type: boolean bookmark: type: object x-microcks-operation: delay: 0 dispatcher: FALLBACK /bookmarks.list: get: tags: - Bookmarks summary: Slack List Bookmarks for a Channel description: Lists bookmarks for a channel. operationId: bookmarksList externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/bookmarks.list parameters: - name: channel_id in: query required: true schema: type: string responses: '200': description: Bookmarks listed content: application/json: schema: type: object properties: ok: type: boolean bookmarks: type: array items: type: object x-microcks-operation: delay: 0 dispatcher: FALLBACK /dnd.setSnooze: post: tags: - Dnd summary: Slack Set Snooze Duration description: >- Turns on Do Not Disturb mode for the current user for the specified number of minutes. operationId: dndSetSnooze externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/dnd.setSnooze requestBody: required: true content: application/json: schema: type: object required: - num_minutes properties: num_minutes: type: integer description: Number of minutes to snooze for. responses: '200': description: Snooze set content: application/json: schema: type: object properties: ok: type: boolean snooze_enabled: type: boolean snooze_endtime: type: integer snooze_remaining: type: integer x-microcks-operation: delay: 0 dispatcher: FALLBACK /dnd.info: get: tags: - Dnd summary: Slack Get Dnd Status for a User description: >- Retrieves a user's current Do Not Disturb status. operationId: dndInfo externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/dnd.info parameters: - name: user in: query description: User to fetch status for. schema: type: string responses: '200': description: DND info retrieved content: application/json: schema: type: object properties: ok: type: boolean dnd_enabled: type: boolean next_dnd_start_ts: type: integer next_dnd_end_ts: type: integer snooze_enabled: type: boolean snooze_endtime: type: integer snooze_remaining: type: integer x-microcks-operation: delay: 0 dispatcher: FALLBACK /usergroups.list: get: tags: - Usergroups summary: Slack List All User Groups description: List all user groups for a team. operationId: usergroupsList externalDocs: description: API method documentation url: https://docs.slack.dev/reference/methods/usergroups.list parameters: - name: include_count in: query schema: type: boolean - name: include_disabled in: query schema: type: boolean - name: include_users in: query schema: type: boolean responses: '200': description: User groups listed content: application/json: schema: type: object properties: ok: type: boolean usergroups: type: array items: type: object properties: id: type: string team_id: type: string is_usergroup: type: boolean name: type: string description: type: string handle: type: string is_external: type: boolean date_create: type: integer date_update: type: integer date_delete: type: integer auto_type: type: string created_by: type: string updated_by: type: string deleted_by: type: string user_count: type: integer users: type: array items: type: string x-microcks-operation: delay: 0 dispatcher: FALLBACK components: securitySchemes: bearerAuth: type: http scheme: bearer description: >- Slack API uses Bearer token authentication. Pass a bot token or user token in the Authorization header. schemas: Message: type: object description: >- A Slack message object representing a single message in a conversation. Messages can contain text, blocks, attachments, files, and reactions. properties: type: type: string description: Always "message" for messages. const: message example: example_value subtype: type: string description: >- Optional subtype indicating a specialized message type such as bot_message, channel_join, channel_leave, etc. example: example_value channel: type: string description: The channel ID where the message was posted. example: example_value user: type: string description: The user ID of the message author. example: example_value text: type: string description: The text content of the message. example: example_value ts: type: string description: >- Unique timestamp identifier for the message, also serves as the message ID. Format is Unix epoch with microseconds (e.g., "1503435956.000247"). example: example_value thread_ts: type: string description: >- The timestamp of the parent message in a thread. Present only for threaded replies. example: example_value reply_count: type: integer description: Number of replies in the thread. example: 10 reply_users_count: type: integer description: Number of unique users who have replied in the thread. example: 10 latest_reply: type: string description: Timestamp of the most recent reply in the thread. example: example_value reply_users: type: array description: Array of user IDs who have replied in the thread. items: type: string example: [] blocks: type: array description: >- An array of Block Kit layout blocks used for rich message formatting. items: type: object example: [] attachments: type: array description: An array of message attachments. items: type: object properties: id: type: integer color: type: string fallback: type: string text: type: string pretext: type: string author_name: type: string author_link: type: string format: uri author_icon: type: string format: uri title: type: string title_link: type: string format: uri fields: type: array items: type: object properties: title: type: string value: type: string short: type: boolean footer: type: string footer_icon: type: string format: uri ts: type: integer example: [] files: type: array description: An array of file objects attached to the message. items: $ref: '#/components/schemas/File' example: [] reactions: type: array description: An array of emoji reactions on this message. items: type: object properties: name: type: string description: Emoji name without colons. count: type: integer description: Number of users who added this reaction. users: type: array description: User IDs of users who added this reaction. items: type: string example: [] edited: type: object description: Edit information if the message was edited. properties: user: type: string ts: type: string example: example_value bot_id: type: string description: Bot ID if the message was posted by a bot. example: '500123' bot_profile: type: object description: Bot profile information if posted by a bot. properties: id: type: string deleted: type: boolean name: type: string updated: type: integer app_id: type: string icons: type: object example: example_value metadata: type: object description: >- Custom metadata attached to the message by an application. properties: event_type: type: string event_payload: type: object example: example_value permalink: type: string format: uri description: Permalink URL for the message. example: https://www.example.com Channel: type: object description: >- A Slack conversation object representing a channel, direct message, multi-person DM, or group conversation. properties: id: type: string description: The unique identifier for this conversation. example: abc123 name: type: string description: >- The name of the channel (without the leading # sign). example: Example Title name_normalized: type: string description: Normalized version of the channel name. example: example_value is_channel: type: boolean description: Whether this is a public channel. example: true is_group: type: boolean description: Whether this is a private channel (formerly a group). example: true is_im: type: boolean description: Whether this is a direct message. example: true is_mpim: type: boolean description: Whether this is a multi-person direct message. example: true is_private: type: boolean description: Whether this is a private conversation. example: true is_archived: type: boolean description: Whether the channel is archived. example: true is_general: type: boolean description: Whether this is the #general channel. example: true is_shared: type: boolean description: Whether the channel is shared with another workspace. example: true is_ext_shared: type: boolean description: >- Whether the channel is shared with an external organization via Slack Connect. example: true is_org_shared: type: boolean description: Whether the channel is shared across an Enterprise Grid org. example: true is_pending_ext_shared: type: boolean description: Whether there is a pending external share invitation. example: true is_member: type: boolean description: Whether the calling user is a member of this conversation. example: true is_open: type: boolean description: Whether the DM is open. example: true is_frozen: type: boolean description: Whether the channel is frozen. example: true created: type: integer description: Unix timestamp of when the conversation was created. example: 10 creator: type: string description: User ID of the member who created this channel. example: example_value updated: type: integer description: Unix timestamp of the last update to the conversation. example: 10 unlinked: type: integer description: Number of times the channel has been unlinked. example: 10 topic: type: object description: The channel topic. properties: value: type: string creator: type: string last_set: type: integer example: example_value purpose: type: object description: The channel purpose. properties: value: type: string creator: type: string last_set: type: integer example: example_value previous_names: type: array description: A list of previous names the channel had. items: type: string example: [] num_members: type: integer description: >- The number of members in the channel. Only included when specifically requested. example: 10 locale: type: string description: >- IETF language code for the channel locale. Only included when specifically requested. example: example_value user: type: string description: >- For direct messages, the user ID of the other participant. example: example_value shared_team_ids: type: array description: >- Array of team IDs that share this channel (for shared channels). items: type: string example: [] parent_conversation: type: string description: Parent conversation ID for thread-only channels. example: example_value context_team_id: type: string description: The workspace team ID. example: '500123' properties: type: object description: Additional channel properties. properties: tabs: type: array items: type: object example: example_value User: type: object description: >- A Slack user object representing a workspace member with their profile, roles, and settings. properties: id: type: string description: The unique identifier for this user. example: abc123 team_id: type: string description: The workspace team ID this user belongs to. example: '500123' name: type: string description: The user's username. example: Example Title deleted: type: boolean description: Whether the user has been deactivated. example: true color: type: string description: >- A hex color code used in certain client displays for this user. example: example_value real_name: type: string description: The user's real name. example: example_value tz: type: string description: The user's timezone identifier (e.g., "America/Los_Angeles"). example: example_value tz_label: type: string description: Descriptive label for the user's timezone. example: example_value tz_offset: type: integer description: The user's timezone offset from UTC in seconds. example: 10 profile: type: object description: The user's profile information. properties: avatar_hash: type: string status_text: type: string description: The user's current status text. status_emoji: type: string description: >- The user's current status emoji. status_expiration: type: integer description: Unix timestamp when the status expires. real_name: type: string display_name: type: string description: >- The display name the user has chosen. real_name_normalized: type: string display_name_normalized: type: string email: type: string format: email description: >- The user's email address. Requires users:read.email scope. first_name: type: string last_name: type: string title: type: string description: The user's job title. phone: type: string skype: type: string image_24: type: string format: uri image_32: type: string format: uri image_48: type: string format: uri image_72: type: string format: uri image_192: type: string format: uri image_512: type: string format: uri image_original: type: string format: uri team: type: string example: example_value is_admin: type: boolean description: Whether the user is a workspace admin. example: true is_owner: type: boolean description: Whether the user is a workspace owner. example: true is_primary_owner: type: boolean description: Whether the user is the primary workspace owner. example: true is_restricted: type: boolean description: Whether the user is a guest with single-channel access. example: true is_ultra_restricted: type: boolean description: Whether the user is a single-channel guest. example: true is_bot: type: boolean description: Whether the user is a bot. example: true is_app_user: type: boolean description: Whether the user is an app user. example: true updated: type: integer description: Unix timestamp of when the user was last updated. example: 10 has_2fa: type: boolean description: Whether the user has two-factor authentication enabled. example: true locale: type: string description: >- IETF language code for the user. Only included when specifically requested. example: example_value File: type: object description: >- A Slack file object representing an uploaded file with its metadata and sharing information. properties: id: type: string description: Unique file identifier. example: abc123 created: type: integer description: Unix timestamp of when the file was created. example: 10 timestamp: type: integer description: Unix timestamp. example: 10 name: type: string description: The file name. example: Example Title title: type: string description: Title of the file. example: Example Title mimetype: type: string description: MIME type of the file. example: example_value filetype: type: string description: Slack file type identifier (e.g., "png", "pdf", "snippet"). example: example_value pretty_type: type: string description: Human-readable file type. example: example_value user: type: string description: User ID of the user who uploaded the file. example: example_value user_team: type: string description: Team ID of the user who uploaded the file. example: example_value editable: type: boolean description: Whether the file content is editable. example: true size: type: integer description: File size in bytes. example: 10 mode: type: string description: >- File mode (e.g., "hosted", "external", "snippet", "post"). example: example_value is_external: type: boolean description: Whether the file is externally hosted. example: true external_type: type: string description: Type of external file. example: example_value is_public: type: boolean description: Whether the file is public. example: true public_url_shared: type: boolean example: https://www.example.com display_as_bot: type: boolean example: true username: type: string example: example_value url_private: type: string format: uri description: URL to access the file. Requires authentication. example: https://www.example.com url_private_download: type: string format: uri description: URL to download the file. Requires authentication. example: https://www.example.com permalink: type: string format: uri description: Permalink URL for the file. example: https://www.example.com permalink_public: type: string format: uri description: Public permalink URL for the file (if shared publicly). example: https://www.example.com channels: type: array description: Array of channel IDs where the file is shared. items: type: string example: [] groups: type: array description: Array of private channel IDs where the file is shared. items: type: string example: [] ims: type: array description: Array of DM IDs where the file is shared. items: type: string example: [] shares: type: object description: Sharing information broken down by type. example: example_value comments_count: type: integer description: Number of comments on the file. example: 10 ResponseMetadata: type: object description: >- Metadata for paginated responses containing cursor information. properties: next_cursor: type: string description: >- An opaque cursor to use in the next request to get the next page of results. Empty string indicates no more results. example: example_value ErrorResponse: type: object description: Standard error response from the Slack API. properties: ok: type: boolean const: false example: true error: type: string description: >- A short machine-readable error code such as "channel_not_found", "not_authed", "invalid_auth", "missing_scope", etc. example: example_value response_metadata: type: object properties: messages: type: array items: type: string example: example_value required: - ok - error