Skip to content

chat.postMessage

Sends a message to a channel.

Surfaceweb-api
Rate limit60/min (special)
ArgumentRequiredType
as_usernostringPass true to post the message as the authed user, instead of as a bot. Defaults to false. See authorship below.
attachmentsnostringA JSON-based array of structured attachments, presented as a URL-encoded string.
blocksnostringA JSON-based array of structured blocks, presented as a URL-encoded string.
channelyesstringChannel, private group, or IM channel to send message to. Can be an encoded ID, or a name. See below for more details.
icon_emojinostringEmoji to use as the icon for this message. Overrides icon_url. Must be used in conjunction with as_user set to false, otherwise ignored. See authorship below.
icon_urlnostringURL to an image to use as the icon for this message. Must be used in conjunction with as_user set to false, otherwise ignored. See authorship below.
link_namesnobooleanFind and link channel names and usernames.
mrkdwnnobooleanDisable Slack markup parsing by setting to false. Enabled by default.
parsenostringChange how messages are treated. Defaults to none. See below.
reply_broadcastnobooleanUsed in conjunction with thread_ts and indicates whether reply should be made visible to everyone in the channel or conversation. Defaults to false.
textnostringHow this field works and whether it is required depends on other fields you use in your API call. See below for more detail.
thread_tsnostringProvide another message’s ts value to make this message a reply. Avoid using a reply’s ts value; use its parent instead.
unfurl_linksnobooleanPass true to enable unfurling of primarily text-based content.
unfurl_medianobooleanPass false to disable unfurling of media content.
usernamenostringSet your bot’s user name. Must be used in conjunction with as_user set to false, otherwise ignored. See authorship below.

ok is always present (true, or false with error). Additional fields:

FieldType
channelobject
messageobject
tsobject

Works with every official Slack SDK — call it exactly as you would against Slack.

Source specSlack Web API OpenAPI v1.7.0 (apis.guru OAS3 conversion of slackapi/slack-api-specs, upstream archived 2024-03)
Retrieved / verified2026-06-04 · patches applied: 0
In frozen specyes — fields below are copied from the published spec
Conformanceexercised by unmodified official SDKs on every release
See alsoSlack’s chat.postMessage reference