<!DOCTYPE html><html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-reference/methods/chat/chat.postMessage" data-has-hydrated="false" data-theme="light" data-theme-choice="light"><head><meta charset="UTF-8"><meta name="generator" content="Docusaurus v3.10.2"><title data-rh="true">chat.postMessage method | Slack Developer Docs</title><meta data-rh="true" name="viewport" content="width=device-width, initial-scale=1.0"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://docs.slack.dev/reference/methods/chat.postMessage"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="chat.postMessage method | Slack Developer Docs"><meta data-rh="true" name="description" content="Sends a message to a channel."><meta data-rh="true" property="og:description" content="Sends a message to a channel."><link data-rh="true" rel="icon" href="/img/logos/favicon.ico"><link data-rh="true" rel="canonical" href="https://docs.slack.dev/reference/methods/chat.postMessage"><link data-rh="true" rel="alternate" href="https://docs.slack.dev/reference/methods/chat.postMessage" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.slack.dev/reference/methods/chat.postMessage" hreflang="x-default"><script async="" src="https://www.googletagmanager.com/gtm.js?id=GTM-TVQFL84W"></script><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://docs.slack.dev/reference/methods","name":"Methods","position":1},{"@type":"ListItem","item":"https://docs.slack.dev/reference/methods/chat.postMessage","name":"chat.postMessage","position":2}]}</script><link rel="alternate" type="application/rss+xml" href="/changelog/rss.xml" title="Slack Developer Docs RSS Feed"><link rel="alternate" type="application/atom+xml" href="/changelog/atom.xml" title="Slack Developer Docs Atom Feed"><script>function gtag(){dataLayer.push(arguments)}function OptanonWrapper(){var a=OptanonActiveGroups.includes(",2,");gtag("consent","update",{analytics_storage:a?"granted":"denied"}),dataLayer.push({event:"OneTrustGroupsUpdated",OnetrustActiveGroups:OptanonActiveGroups,analyticsConsent:a?"granted":"denied"})}window.dataLayer=window.dataLayer||[],gtag("consent","default",{analytics_storage:"denied"})</script><link rel="preconnect" href="https://www.googletagmanager.com"><script>window.dataLayer=window.dataLayer||[],function(e,t,a,n,r){e[n]=e[n]||[],e[n].push({"gtm.start":new Date().getTime(),event:"gtm.js"});var d=t.getElementsByTagName(a)[0],g=t.createElement(a);g.async=!0,g.src="https://www.googletagmanager.com/gtm.js?id="+r+("dataLayer"!=n?"&l="+n:""),d.parentNode.insertBefore(g,d)}(window,document,"script","dataLayer","GTM-TVQFL84W")</script><meta name="google-site-verification" content="d1jXBEojz0KFbjvsojJJ77KWTOf_8sIb3T32nAQY0ak"><link rel="alternate" type="text/plain" title="llms.txt" href="/llms.txt"><script src="https://d34u8crftukxnk.cloudfront.net/onetrust/slack.dev/production/scripttemplates/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="0198614a-ba8b-77a9-8d49-cfaf177eabd7"></script><link rel="stylesheet" href="/assets/css/styles.0f5fa513.css"><script src="/assets/js/runtime~main.d157c2e0.js" defer=""></script><script src="/assets/js/main.fb9f77ce.js" defer=""></script></head><body><svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></symbol>
</defs></svg>
<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script>

<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-TVQFL84W" height=0 width=0 style=display:none;visibility:hidden></iframe></noscript><div id="__docusaurus"><link rel="preload" as="image" href="/img/logos/logo-light.svg"><link rel="preload" as="image" href="/img/logos/logo-dark.svg"><link rel="preload" as="image" href="/img/logos/slack-cli.png"><link rel="preload" as="image" href="/img/logos/bolt-js-logo.svg"><link rel="preload" as="image" href="/img/logos/bolt-py-logo.svg"><link rel="preload" as="image" href="/img/logos/bolt-java-logo.svg"><div style="display:none" aria-hidden="true"><div data-pagefind-filter="content_type">reference</div></div><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="theme-layout-navbar navbar navbar--fixed-top"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" target="_self" href="/"><div class="navbar__logo"><img src="/img/logos/logo-light.svg" alt="Slack Developer Docs" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/img/logos/logo-dark.svg" alt="Slack Developer Docs" class="themedComponent_mlkZ themedComponent--dark_xIcU"></div></a><a class="navbar__item navbar__link" target="_self" href="/">Guides</a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" target="_self" href="/reference">Reference</a><a class="navbar__item navbar__link" target="_self" href="/samples">Samples</a><a class="navbar__item navbar__link" target="_self" href="/tools">Tools</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a class="navbar__item navbar__link" target="_self" href="/changelog">Changelog</a><a href="https://api.slack.com/developer-program" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Dev Program</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div><div class="navbar__search-wrapper"><div class="navbar__search"><div style="position:relative;padding:0 0.5rem"><div style="position:relative;display:inline-block"><input type="text" placeholder="Search docs" class="pagefind-custom-input pagefind-navbar-input" value=""></div></div></div><a href="https://api.slack.com/apps" target="_blank" rel="noopener noreferrer" class="navbar-manage-apps-button outlined-button manage-apps-link">MANAGE APPS</a></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/reference/"><span class="linkLabel_WmDU">Reference</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/reference/app-manifest"><span class="linkLabel_WmDU">App manifest</span></a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" href="/reference/block-kit"><span class="categoryLinkLabel_W154">Block Kit</span></a><button aria-label="Expand sidebar category 'Block Kit'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" href="/reference/events"><span class="categoryLinkLabel_W154">Events</span></a><button aria-label="Expand sidebar category 'Events'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" href="/reference/interaction-payloads"><span class="categoryLinkLabel_W154">Interaction payloads</span></a><button aria-label="Expand sidebar category 'Interaction payloads'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--active" href="/reference/methods"><span class="categoryLinkLabel_W154">Methods</span></a><button aria-label="Collapse sidebar category 'Methods'" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/reference/methods"><span class="linkLabel_WmDU">Overview</span></a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/admin.analytics.getFile"><span class="categoryLinkLabel_W154">admin</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/api.test"><span class="categoryLinkLabel_W154">api</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/apps.activities.list"><span class="categoryLinkLabel_W154">apps</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/assistant.search.context"><span class="categoryLinkLabel_W154">assistant</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/auth.revoke"><span class="categoryLinkLabel_W154">auth</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/blocks.validate"><span class="categoryLinkLabel_W154">blocks</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/bookmarks.add"><span class="categoryLinkLabel_W154">bookmarks</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/bots.info"><span class="categoryLinkLabel_W154">bots</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/calls.add"><span class="categoryLinkLabel_W154">calls</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/canvases.access.delete"><span class="categoryLinkLabel_W154">canvases</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" role="button" aria-expanded="true" tabindex="0" href="/reference/methods/chat.appendStream"><span class="categoryLinkLabel_W154">chat</span></a></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/reference/methods/chat.appendStream"><span class="linkLabel_WmDU">chat.appendStream</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/reference/methods/chat.delete"><span class="linkLabel_WmDU">chat.delete</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/reference/methods/chat.deleteScheduledMessage"><span class="linkLabel_WmDU">chat.deleteScheduledMessage</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/reference/methods/chat.getPermalink"><span class="linkLabel_WmDU">chat.getPermalink</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/reference/methods/chat.meMessage"><span class="linkLabel_WmDU">chat.meMessage</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/reference/methods/chat.postEphemeral"><span class="linkLabel_WmDU">chat.postEphemeral</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/reference/methods/chat.postMessage"><span class="linkLabel_WmDU">chat.postMessage</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/reference/methods/chat.scheduleMessage"><span class="linkLabel_WmDU">chat.scheduleMessage</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/reference/methods/chat.scheduledMessages.list"><span class="linkLabel_WmDU">chat.scheduledMessages.list</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/reference/methods/chat.startStream"><span class="linkLabel_WmDU">chat.startStream</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/reference/methods/chat.stopStream"><span class="linkLabel_WmDU">chat.stopStream</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/reference/methods/chat.unfurl"><span class="linkLabel_WmDU">chat.unfurl</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/reference/methods/chat.update"><span class="linkLabel_WmDU">chat.update</span></a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/conversations.acceptSharedInvite"><span class="categoryLinkLabel_W154">conversations</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/dialog.open"><span class="categoryLinkLabel_W154">dialog</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/dnd.endDnd"><span class="categoryLinkLabel_W154">dnd</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/emoji.list"><span class="categoryLinkLabel_W154">emoji</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/entity.acknowledgeCommentAction"><span class="categoryLinkLabel_W154">entity</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/files.comments.delete"><span class="categoryLinkLabel_W154">files</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/functions.completeError"><span class="categoryLinkLabel_W154">functions</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/slackLists.access.delete"><span class="categoryLinkLabel_W154">lists</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/migration.exchange"><span class="categoryLinkLabel_W154">migration</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/oauth.access"><span class="categoryLinkLabel_W154">oauth</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/openid.connect.token"><span class="categoryLinkLabel_W154">openid</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/pins.add"><span class="categoryLinkLabel_W154">pins</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/reactions.add"><span class="categoryLinkLabel_W154">reactions</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/reminders.add"><span class="categoryLinkLabel_W154">reminders</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/rtm.connect"><span class="categoryLinkLabel_W154">rtm</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/search.all"><span class="categoryLinkLabel_W154">search</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/stars.add"><span class="categoryLinkLabel_W154">stars</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/team.accessLogs"><span class="categoryLinkLabel_W154">team</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/tooling.tokens.rotate"><span class="categoryLinkLabel_W154">tooling</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/usergroups.create"><span class="categoryLinkLabel_W154">usergroups</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/users.conversations"><span class="categoryLinkLabel_W154">users</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/views.open"><span class="categoryLinkLabel_W154">views</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/reference/methods/workflows.featured.add"><span class="categoryLinkLabel_W154">workflows</span></a></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" href="/reference/objects"><span class="categoryLinkLabel_W154">Objects</span></a><button aria-label="Expand sidebar category 'Objects'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" href="/reference/scopes"><span class="categoryLinkLabel_W154">Scopes</span></a><button aria-label="Expand sidebar category 'Scopes'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" href="/reference/types"><span class="categoryLinkLabel_W154">Types</span></a><button aria-label="Expand sidebar category 'Types'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/reference/slack-connect-api-reference"><span class="linkLabel_WmDU">Slack Connect API</span></a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" href="/reference/views"><span class="categoryLinkLabel_W154">Views</span></a><button aria-label="Expand sidebar category 'Views'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1"><hr></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" href="/reference/audit-logs-api"><span class="categoryLinkLabel_W154">Audit Logs API</span></a><button aria-label="Expand sidebar category 'Audit Logs API'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/reference/legal-holds-api-reference"><span class="linkLabel_WmDU">Legal Holds API</span></a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" href="/reference/scim-api/scim-api"><span class="categoryLinkLabel_W154">SCIM API</span></a><button aria-label="Expand sidebar category 'SCIM API'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1"><hr></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/reference/slack-status-api"><span class="linkLabel_WmDU">Slack Status API</span></a></li></ul></nav><button type="button" title="Collapse sidebar" aria-label="Collapse sidebar" class="button button--secondary button--outline collapseSidebarButton_PEFL"><svg width="20" height="20" aria-hidden="true" class="collapseSidebarButtonIcon_kv0_"><g fill="#7a7a7a"><path d="M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"></path><path d="M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"></path></g></svg></button></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_TYmE" aria-label="Breadcrumbs"><ul class="breadcrumbs"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><a class="breadcrumbs__link" href="/reference/methods"><span>Methods</span></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">chat</span></li><li class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link">chat.postMessage</span></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1><code>chat.postMessage</code> method</h1></header>
<div class="method-page-layout-mobile"><div class="method-page-tabs"><button type="button" class="tab active" aria-pressed="true">Docs</button><button type="button" class="tab " aria-pressed="false">Call generator</button></div><div class="method-page-tab-content"><div class="method-page-content"><h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="facts">Facts<a href="#facts" class="hash-link" aria-label="Direct link to Facts" title="Direct link to Facts" translate="no">​</a></h2><div class="functions-section facts-section"><div class="info-row"><strong class="info-key">Description</strong><span class="facts-row-list">Sends a message to a channel.</span></div><div class="info-row"><strong class="info-key">Method Access</strong><div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">HTTP</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Slack CLI</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">JavaScript</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Python</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Java</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#F8F8F2"><span class="token plain">POST https://slack.com/api/chat.postMessage</span><br></div></code></pre></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><span class="facts-row-list"><a href="/tools/slack-cli"><img src="/img/logos/slack-cli.png" alt="slack-cli" class="inline-icon"></a><div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#F8F8F2"><span class="token plain">slack api chat.postMessage</span><br></div></code></pre></div></div></span></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><span class="facts-row-list"><a href="/tools/bolt-js"><img src="/img/logos/bolt-js-logo.svg" alt="bolt-js" class="inline-icon"></a><div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#F8F8F2"><span class="token plain">app.client.chat.postMessage</span><br></div></code></pre></div></div></span></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><span class="facts-row-list"><a href="/tools/bolt-python"><img src="/img/logos/bolt-py-logo.svg" alt="bolt-py" class="inline-icon"></a><div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#F8F8F2"><span class="token plain">app.client.chat_postMessage</span><br></div></code></pre></div></div></span></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><span class="facts-row-list"><a href="/tools/java-slack-sdk/guides/getting-started-with-bolt"><img src="/img/logos/bolt-java-logo.svg" alt="bolt-java" class="inline-icon"></a><div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#F8F8F2"><span class="token plain">app.client().chatPostMessage</span><br></div></code></pre></div></div></span></div></div></div></div><div class="info-row"><strong class="info-key">Scopes</strong><div><div class="scope-row" style="display:flex;align-items:center;gap:8px;margin-bottom:4px">Bot token:<div style="display:flex;flex-wrap:wrap;gap:4px"><a href="/reference/scopes/chat.write"><code>chat:write</code></a></div></div><div class="scope-row" style="display:flex;align-items:center;gap:8px;margin-bottom:4px">User token:<div style="display:flex;flex-wrap:wrap;gap:4px"><a href="/reference/scopes/chat.write"><code>chat:write</code></a></div></div></div></div><div class="info-row"><strong class="info-key">Content types</strong><div class="facts-row-list"><div><code>application/x-www-form-urlencoded</code> </div><div><code>application/json</code> </div></div></div><div class="info-row"><strong class="info-key">Rate Limits</strong><a href="/apis/web-api/rate-limits">Special rate limits apply.</a></div></div><h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="arguments">Arguments<a href="#arguments" class="hash-link" aria-label="Direct link to Arguments" title="Direct link to Arguments" translate="no">​</a></h2><div class="functions-section inputs-section"><div class="param-required-section"><h3>Required arguments</h3><div class="param-container"><div class="param-top-row"><span class="reference-name"><strong><code>token</code></strong></span><span class="type"><code>string</code></span><span class="required">Required</span></div><div><p>Authentication token bearing required scopes. Tokens should be passed as an HTTP Authorization header or alternatively, as a POST parameter.</p></div><div><em>Example: </em><code>xxxx-xxxxxxxxx-xxxx</code></div></div><div class="param-container"><div class="param-top-row"><span class="reference-name"><strong><code>channel</code></strong></span><span class="type"><code>string</code></span><span class="required">Required</span></div><div><p>An encoded ID or channel name that represents a channel, private group, or IM channel to send the message to. See <a href="#channels">below</a> for more details.</p></div></div></div><div class="param-required-section"><h3>Optional arguments</h3><div class="param-container"><div class="param-top-row"><span class="reference-name"><strong><code>as_user</code></strong></span><span class="type"><code>boolean</code></span><span class="required">Optional</span></div><div><p>(Legacy) Pass true to post the message as the authed user instead of as a bot. Defaults to false. Can only be used by classic apps. See <a href="#legacy_as_user">legacy <code>as_user</code> parameter</a> below.</p></div><div><em>Example: </em><code>true</code></div></div><div class="param-container"><div class="param-top-row"><span class="reference-name"><strong><code>attachments</code></strong></span><span class="required">Optional</span></div><div><p>A JSON-based array of structured attachments, presented as a URL-encoded string.</p></div><div><em>Example: </em><code>[{"pretext": "pre-hello", "text": "text-world"}]</code></div></div><div class="param-container"><div class="param-top-row"><span class="reference-name"><strong><code>blocks</code></strong></span><span class="required">Optional</span></div><div><p>A JSON-based array of structured blocks, presented as a URL-encoded string.</p></div><div><em>Example: </em><code>[{"type": "section", "text": {"type": "plain_text", "text": "Hello world"}}]</code></div></div><div class="param-container"><div class="param-top-row"><span class="reference-name"><strong><code>current_draft_last_updated_ts</code></strong></span><span class="type"><code>string</code></span><span class="required">Optional</span></div><div><p>This field represents the timestamp of the draft's last update at the time this API is called. If the current message is a draft, this field can be provided to ensure synchronization with the server.</p></div><div><em>Example: </em><code>1524523204.000192</code></div></div><div class="param-container"><div class="param-top-row"><span class="reference-name"><strong><code>icon_emoji</code></strong></span><span class="required">Optional</span></div><div><p>Emoji to use as the icon for this message. Overrides <code>icon_url</code>.</p></div><div><em>Example: </em><code>:chart_with_upwards_trend:</code></div></div><div class="param-container"><div class="param-top-row"><span class="reference-name"><strong><code>icon_url</code></strong></span><span class="required">Optional</span></div><div><p>URL to an image to use as the icon for this message.</p></div><div><em>Example: </em><code>http://lorempixel.com/48/48</code></div></div><div class="param-container"><div class="param-top-row"><span class="reference-name"><strong><code>link_names</code></strong></span><span class="type"><code>boolean</code></span><span class="required">Optional</span></div><div><p>Find and link user groups. No longer supports linking individual users; use syntax shown in <a href="/messaging/formatting-message-text#mentioning-users">Mentioning Users</a> instead.</p></div><div><em>Example: </em><code>true</code></div></div><div class="param-container"><div class="param-top-row"><span class="reference-name"><strong><code>markdown_text</code></strong></span><span class="type"><code>string</code></span><span class="required">Optional</span></div><div><p>Accepts message text formatted in markdown. This argument should not be used in conjunction with <code>blocks</code> or <code>text</code>. Limit this field to 12,000 characters.</p></div><div><em>Example: </em><code>**This is bold text**</code></div></div><div class="param-container"><div class="param-top-row"><span class="reference-name"><strong><code>metadata</code></strong></span><span class="required">Optional</span></div><div><p>JSON object with event_type and event_payload fields, presented as a URL-encoded string. You can also provide Work Object entity metadata using this parameter. Metadata you post to Slack is accessible to any app or user who is a member of that workspace.</p></div><div><em>Example: </em><code>{"event_type": "task_created", "event_payload": { "id": "11223", "title": "Redesign Homepage"}}</code></div></div><div class="param-container"><div class="param-top-row"><span class="reference-name"><strong><code>mrkdwn</code></strong></span><span class="type"><code>boolean</code></span><span class="required">Optional</span></div><div><p>Disable Slack markup parsing by setting to <code>false</code>. Enabled by default.</p></div><div><em>Default: </em><code>true</code></div><div><em>Example: </em><code>false</code></div></div><div class="param-container"><div class="param-top-row"><span class="reference-name"><strong><code>parse</code></strong></span><span class="required">Optional</span></div><div><p>Change how messages are treated. See <a href="#formatting">below</a>.</p></div><div><em>Example: </em><code>full</code></div></div><div class="param-container"><div class="param-top-row"><span class="reference-name"><strong><code>reply_broadcast</code></strong></span><span class="type"><code>boolean</code></span><span class="required">Optional</span></div><div><p>Used in conjunction with <code>thread_ts</code> and indicates whether reply should be made visible to everyone in the channel or conversation. Defaults to <code>false</code>.</p></div><div><em>Example: </em><code>true</code></div></div><div class="param-container"><div class="param-top-row"><span class="reference-name"><strong><code>text</code></strong></span><span class="required">Optional</span></div><div><p>How this field works and whether it is required depends on other fields you use in your API call. <a href="#text_usage">See below</a> for more detail.</p></div><div><em>Example: </em><code>Hello world</code></div></div><div class="param-container"><div class="param-top-row"><span class="reference-name"><strong><code>thread_ts</code></strong></span><span class="required">Optional</span></div><div><p>Provide another message's <code>ts</code> value to make this message a reply. Avoid using a reply's <code>ts</code> value; use its parent instead.</p></div></div><div class="param-container"><div class="param-top-row"><span class="reference-name"><strong><code>unfurl_links</code></strong></span><span class="type"><code>boolean</code></span><span class="required">Optional</span></div><div><p>Pass true to enable unfurling of primarily text-based content.</p></div><div><em>Example: </em><code>true</code></div></div><div class="param-container"><div class="param-top-row"><span class="reference-name"><strong><code>unfurl_media</code></strong></span><span class="type"><code>boolean</code></span><span class="required">Optional</span></div><div><p>Pass false to disable unfurling of media content.</p></div><div><em>Example: </em><code>false</code></div></div><div class="param-container"><div class="param-top-row"><span class="reference-name"><strong><code>username</code></strong></span><span class="required">Optional</span></div><div><p>Set your bot's user name.</p></div><div><em>Example: </em><code>My Bot</code></div></div></div></div><h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="usage-info">Usage info<a href="#usage-info" class="hash-link" aria-label="Direct link to Usage info" title="Direct link to Usage info" translate="no">​</a></h2><p>This method posts <a class="" href="/messaging">a message</a> to a public channel, private channel, or direct message (DM, or IM) conversation.</p><div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Consider reviewing our <a class="" href="/concepts/app-design">message guidelines</a>, especially if you're using attachments or message buttons.</div></div><h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="text-blocks-attachments">The <code>text</code>, <code>blocks</code> and <code>attachments</code> fields<a href="#text-blocks-attachments" class="hash-link" aria-label="Direct link to text-blocks-attachments" title="Direct link to text-blocks-attachments" translate="no">​</a></h3><p>The usage of the <code>text</code> field changes depending on whether you're using <code>blocks</code>. If you're using <code>blocks</code>, this is used as a fallback string to display in notifications. If you aren't, this is the main body text of the message. It can be formatted as plain text, or with <code>mrkdwn</code>.</p><p>The <code>text</code> field is not enforced as required when using <code>blocks</code> or <code>attachments</code>. However, we highly recommended that you include <code>text</code> to provide a fallback when using <code>blocks</code>, as described above.</p><h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="accessibility">Accessibility considerations<a href="#accessibility" class="hash-link" aria-label="Direct link to Accessibility considerations" title="Direct link to Accessibility considerations" translate="no">​</a></h4><p>It is expected behavior that screen readers will default to the top-level <code>text</code> field of your post, and will not read the content of any interior <code>blocks</code> in the underlying structure of the message. Therefore, to make an accessible app, you must either:</p><ul>
<li class="">include all necessary content for screen reader users in the top-level <code>text</code> field of your message, or</li>
<li class="">do not include a top-level <code>text</code> field if the message has <code>blocks</code>, and allow Slack attempt to build it for you by appending content from supported <code>blocks</code> to be read by the screen reader.</li>
</ul><h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="JSON_POST">JSON POST support<a href="#JSON_POST" class="hash-link" aria-label="Direct link to JSON POST support" title="Direct link to JSON POST support" translate="no">​</a></h4><p>When POSTing with <code>application/x-www-form-urlencoded</code> data, the optional <code>attachments</code> argument should contain a JSON-encoded array of <a class="" href="/messaging/formatting-message-text">attachments</a>.</p><div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Send JSON!</div><div class="admonitionContent_BuS1"><p>As of <a class="" href="/changelog/2017-10-keeping-up-with-the-jsons">October 2017</a>, it's possible to send a well-formatted <code>application/json</code> POST body to <code>chat.postMessage</code> and other <a class="" href="/apis/web-api/">Web API</a> write methods. No need to carefully URL-encode your JSON <code>attachments</code> and present all other fields as URL encoded key<!-- -->:value<!-- --> pairs; just send JSON instead.</p></div></div><h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="formatting">Formatting messages<a href="#formatting" class="hash-link" aria-label="Direct link to Formatting messages" title="Direct link to Formatting messages" translate="no">​</a></h3><p>Messages are formatted as described in the <a class="" href="/messaging/formatting-message-text">formatting spec</a>. The formatting behavior will change depending on the value of <code>parse</code>.</p><p>By default, URLs will be hyperlinked. Set <code>parse</code> to <code>none</code> to remove the hyperlinks.</p><p>The behavior of <code>parse</code> is different for text formatted with <code>mrkdwn</code>. By default, or when <code>parse</code> is set to <code>none</code>, <code>mrkdwn</code> formatting is implemented. To ignore <code>mrkdwn</code> formatting, set <code>parse</code> to <code>full</code>.</p><h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="unfurling">Unfurling content<a href="#unfurling" class="hash-link" aria-label="Direct link to Unfurling content" title="Direct link to Unfurling content" translate="no">​</a></h4><p>By default, we unfurl all links in any messages posted by users and Slack apps. We also unfurl links to media-based content within <a class="" href="/reference/block-kit/blocks">Block kit blocks</a>.</p><p>If you want to suppress link unfurls in messages containing <a class="" href="/reference/block-kit/blocks">Block Kit blocks</a>, set <code>unfurl_links</code> and <code>unfurl_media</code> to false.</p><p>For more detailed information about link unfurling, refer to <a class="" href="/messaging/unfurling-links-in-messages">unfurling links in messages</a>.</p><h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="truncating">Truncating content<a href="#truncating" class="hash-link" aria-label="Direct link to Truncating content" title="Direct link to Truncating content" translate="no">​</a></h4><p>For best results, limit the number of characters in the <code>text</code> field to 4,000 characters. Ideally, messages should be short and human-readable. Slack will <a class="" href="/changelog/2018-truncating-really-long-messages">truncate messages</a> containing more than 40,000 characters. If you need to post longer messages, please consider <a class="" href="/reference/methods/files.upload">uploading a snippet instead</a>.</p><p>If using <code>blocks</code>, the limit and truncation of characters will be determined by the specific type of <a class="" href="/reference/block-kit/blocks">block</a>.</p><h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="threads">Threads and replies<a href="#threads" class="hash-link" aria-label="Direct link to Threads and replies" title="Direct link to Threads and replies" translate="no">​</a></h3><p>Provide a <code>thread_ts</code> value for the posted message to act as a reply to a parent message. Sparingly, set <code>reply_broadcast</code> to <code>true</code> if your reply is important enough for everyone in the channel to receive.</p><div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>See <a class="" href="/messaging#threading">threading message</a> for a more in-depth look at message threading.</div></div><h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="channels">Channels<a href="#channels" class="hash-link" aria-label="Direct link to Channels" title="Direct link to Channels" translate="no">​</a></h3><p>You <strong>must</strong> specify a public channel, private channel, or an IM channel with the <code>channel</code> argument. Each one behaves slightly differently based on the authenticated user's permissions and additional arguments, as discussed in the sections below.</p><h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="public">Post to a public channel<a href="#public" class="hash-link" aria-label="Direct link to Post to a public channel" title="Direct link to Post to a public channel" translate="no">​</a></h4><p>Pass the channel name or the channel's ID (<code>C123456</code>) to the <code>channel</code> parameter and the message will be posted to that channel. The channel's ID can be retrieved through the <a class="" href="/reference/methods/conversations.list">conversations.list</a> API method.</p><h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="private">Post to a private channel<a href="#private" class="hash-link" aria-label="Direct link to Post to a private channel" title="Direct link to Post to a private channel" translate="no">​</a></h4><p>As long as the authenticated user is a member of the private channel, pass the channel's ID (<code>C123456</code>) to the <code>channel</code> parameter and the message will be posted to that channel. The private channel's ID can be retrieved through the <a class="" href="/reference/methods/conversations.list">conversations.list</a> API method.</p><h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="mpdm">Post to a multi-person direct message channel<a href="#mpdm" class="hash-link" aria-label="Direct link to Post to a multi-person direct message channel" title="Direct link to Post to a multi-person direct message channel" translate="no">​</a></h4><p>As long as the authenticated user is a member of the multi-person direct message (a "private group" or MPIM), you can pass the group's ID (<code>G123456</code>) and the message will be posted to that group. The private group's ID can be retrieved through the <a class="" href="/reference/methods/conversations.list">conversations.list</a> API method.</p><h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="dm">Post to a direct message channel<a href="#dm" class="hash-link" aria-label="Direct link to Post to a direct message channel" title="Direct link to Post to a direct message channel" translate="no">​</a></h4><p>Posting to direct messages (also known as DMs or IMs) can be a little more complex, depending on what you actually want to accomplish.</p><p>If you want your app's bot user to start a 1:1 conversation with another user in a workspace, provide the user's ID as the <code>channel</code> value and a direct message conversation will be opened if it isn't open already. Resultant messages and associated direct message objects will have a direct message ID you can use from that point forward, if you'd rather.</p><p>Bot users <strong>cannot</strong> post to a direct message conversation between two users using <code>chat.postMessage</code>. If your app was involved in the conversation, then it would be a multi-person direct message instead. Apps can post to direct message conversations between users when a <a class="" href="/interactivity/implementing-shortcuts">shortcut</a> or <a class="" href="/interactivity/implementing-slash-commands">slash command</a> belonging to that app is used in the conversation.</p><p>You will receive a <code>channel_not_found</code> error if your app doesn't have permission to enter into a DM with the intended user.</p><div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Passing a "username" as a <code>channel</code> value is deprecated, along with <a class="" href="/changelog/2017-09-the-one-about-usernames">the whole concept of <em>usernames</em> on Slack</a>.</div><div class="admonitionContent_BuS1"><p>Please <em>always</em> use channel-like IDs instead to make sure your message gets to where it's going.</p></div></div><h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="get-userID">Getting a user's ID<a href="#get-userID" class="hash-link" aria-label="Direct link to Getting a user's ID" title="Direct link to Getting a user's ID" translate="no">​</a></h4><p>A list of user IDs can be retrieved via the <a class="" href="/reference/methods/users.list"><code>users.list</code></a> API method.</p><h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="app_home">Begin a conversation in a user's App Home<a href="#app_home" class="hash-link" aria-label="Direct link to Begin a conversation in a user's App Home" title="Direct link to Begin a conversation in a user's App Home" translate="no">​</a></h3><p>Start a conversation with users in your <a class="" href="/surfaces/app-home">App Home</a>.</p><p>With the <code>chat:write</code> scope enabled, call <code>chat.postMessage</code> and pass a user's ID (<code>U123456</code>) as the value of <code>channel</code> to post to that user's App Home channel. You can use their direct message channel ID (as found with <code>conversations.open</code>, for instance) instead.</p><h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="rate_limiting">Rate limiting<a href="#rate_limiting" class="hash-link" aria-label="Direct link to Rate limiting" title="Direct link to Rate limiting" translate="no">​</a></h3><p><code>chat.postMessage</code> has special <a class="" href="/apis/web-api/rate-limits">rate limiting</a> conditions. It will generally allow an app to post 1 message per second to a specific channel. There are limits governing your app's relationship with the entire workspace above that, limiting posting to several hundred messages per minute. Generous burst behavior is also granted.</p><h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="channel_membership">Channel membership<a href="#channel_membership" class="hash-link" aria-label="Direct link to Channel membership" title="Direct link to Channel membership" translate="no">​</a></h3><p>New Slack apps do <em>not</em> begin life with the ability to post in all public channels.</p><p>For your new Slack app to gain the ability to post in all public channels, request the <a class="" href="/reference/scopes/chat.write.public"><code>chat:write.public</code></a> scope.</p><hr><h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="authorship">Sending messages as other entities<a href="#authorship" class="hash-link" aria-label="Direct link to Sending messages as other entities" title="Direct link to Sending messages as other entities" translate="no">​</a></h3><p>Apps can publish messages that appear to have been created by a user in the conversation. The message will be attributed to the user and show their profile photo beside it.</p><p>This is a powerful ability and must only be used when the user themselves gives permission to do so. For this reason, this ability is only available when an app has requested and been granted an additional scope — <a class="" href="/reference/scopes/chat.write.customize"><code>chat:write.customize</code></a>.</p><p>Your app should only use this feature in response to an inciting user action. It should never be unexpected or surprising to a user that a message was posted on their behalf, and it should be heavily signposted in advance.</p><p>To modify the appearance of the app, make calls to <a class="" href="/reference/methods/chat.postMessage"><code>chat.postMessage</code></a> while providing any of the following parameters:</p><ul>
<li class=""><code>username</code> to specify the username for the published message.</li>
<li class=""><code>icon_url</code> to specify a URL to an image to use as the profile photo alongside the message.</li>
<li class=""><code>icon_emoji</code> to specify an emoji (using colon shortcodes, eg. <code>:white_check_mark:</code>) to use as the profile photo alongside the message.</li>
</ul><p>If the <code>channel</code> parameter is set to a User ID (beginning with <code>U</code>), the message will appear in that user's direct message channel with Slack (the system user, <code>USLACK</code>). To post a message to that user's direct message channel with the app, use the DM ID (beginning with <code>D</code>) instead.</p><p>The <a class="" href="/reference/methods/chat.delete"><code>chat.delete</code></a> method has no accommodations for impersonation. If a message is sent impersonating another user, you will not be able to call <code>chat.delete</code> to delete that same message.</p><hr><h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="response">Response<a href="#response" class="hash-link" aria-label="Direct link to Response" title="Direct link to Response" translate="no">​</a></h2><div><div><h4><p>Response including the "timestamp ID" (<code>ts</code>) and the channel-like thing where the message was posted. It also includes the complete message object, as parsed by our servers. This may differ from the provided arguments as our servers sanitize links, attachments, and other properties. Your message may mutate.</p></h4><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#F8F8F2"><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token property">"ok"</span><span class="token operator">:</span><span class="token plain"> </span><span class="token boolean">true</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token property">"channel"</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"C123ABC456"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token property">"ts"</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"1503435956.000247"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token property">"message"</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token property">"text"</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"Here's a message for you"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token property">"username"</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"ecto1"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token property">"bot_id"</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"B123ABC456"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token property">"attachments"</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain"></span><br></div><div class="token-line" style="color:#F8F8F2"><span class="token plain">      </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token property">"text"</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"This is an attachment"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token property">"id"</span><span class="token operator">:</span><span class="token plain"> </span><span class="token number">1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token property">"fallback"</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"This is an attachment's fallback"</span><span class="token plain"></span><br></div><div class="token-line" style="color:#F8F8F2"><span class="token plain">      </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token property">"type"</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"message"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token property">"subtype"</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"bot_message"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token property">"ts"</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"1503435956.000247"</span><span class="token plain"></span><br></div><div class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></div></code></pre></div></div></div><div><h4><p>Typical error response if too many attachments are included</p></h4><div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#F8F8F2"><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token property">"ok"</span><span class="token operator">:</span><span class="token plain"> </span><span class="token boolean">false</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token property">"error"</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"too_many_attachments"</span><span class="token plain"></span><br></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></div></code></pre></div></div></div></div><h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="errors">Errors<a href="#errors" class="hash-link" aria-label="Direct link to Errors" title="Direct link to Errors" translate="no">​</a></h2><div class="functions-section errors-section"><p>This table lists the expected errors that this method could return. However, other errors can be returned in the case where the service is down or other unexpected factors affect processing. Callers should always check the value of the <code>ok</code> parameter in the response.</p><div class="reference-facts-header"><div class="reference-name">Error</div><div class="reference-description">Description</div></div><div class="reference-facts-item"><div class="reference-name"><code>access_denied</code></div><div class="reference-description"><p>Access to a resource specified in the request is denied.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>accesslimited</code></div><div class="reference-description"><p>Access to this method is limited on the current network</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>account_inactive</code></div><div class="reference-description"><p>Authentication token is for a deleted user or workspace when using a <code>bot</code> token.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>app_access_restricted</code></div><div class="reference-description"><p>The user does not have permission to use this app.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>as_user_not_supported</code></div><div class="reference-description"><p>The <code>as_user</code> parameter does not function with workspace apps.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>attachment_payload_limit_exceeded</code></div><div class="reference-description"><p>Attachment payload size is too long.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>cannot_reply_to_message</code></div><div class="reference-description"><p>This message type cannot have thread replies.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>channel_not_found</code></div><div class="reference-description"><p>Value passed for <code>channel</code> was invalid.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>deprecated_endpoint</code></div><div class="reference-description"><p>The endpoint has been deprecated.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>draft_already_deleted</code></div><div class="reference-description"><p>The draft has already been deleted.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>draft_already_sent</code></div><div class="reference-description"><p>The draft has already been sent.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>draft_has_conflict</code></div><div class="reference-description"><p>The client draft version is out of sync with the server draft version.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>draft_not_found</code></div><div class="reference-description"><p>The draft was not found.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>duplicate_channel_not_found</code></div><div class="reference-description"><p>Channel associated with <code>client_msg_id</code> was invalid.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>duplicate_message_not_found</code></div><div class="reference-description"><p>No duplicate message exists associated with <code>client_msg_id</code>.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>ekm_access_denied</code></div><div class="reference-description"><p>Your message couldn’t be sent because your admins have disabled sending messages to this channel.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>ekm_access_denied</code></div><div class="reference-description"><p>Administrators have suspended the ability to post a message.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>enterprise_is_restricted</code></div><div class="reference-description"><p>The method cannot be called from an Enterprise.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>fatal_error</code></div><div class="reference-description"><p>The server could not complete your operation(s) without encountering a catastrophic error. It's possible some aspect of the operation succeeded before the error was raised.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>internal_error</code></div><div class="reference-description"><p>The server could not complete your operation(s) without encountering an error, likely due to a transient issue on our end. It's possible some aspect of the operation succeeded before the error was raised.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>invalid_arg_name</code></div><div class="reference-description"><p>The method was passed an argument whose name falls outside the bounds of accepted or expected values. This includes very long names and names with non-alphanumeric characters other than <code>_</code>. If you get this error, it is typically an indication that you have made a <em>very</em> malformed API call.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>invalid_arguments</code></div><div class="reference-description"><p>The method was called with invalid arguments.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>invalid_array_arg</code></div><div class="reference-description"><p>The method was passed an array as an argument. Please only input valid strings.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>invalid_auth</code></div><div class="reference-description"><p>Some aspect of authentication cannot be validated. Either the provided token is invalid or the request originates from an IP address disallowed from making the request.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>invalid_blocks</code></div><div class="reference-description"><p>Blocks submitted with this message are not valid.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>invalid_blocks_format</code></div><div class="reference-description"><p>The <code>blocks</code> is not a valid JSON object or doesn't match the Block Kit syntax.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>invalid_charset</code></div><div class="reference-description"><p>The method was called via a <code>POST</code> request, but the <code>charset</code> specified in the <code>Content-Type</code> header was invalid. Valid charset names are: <code>utf-8</code> <code>iso-8859-1</code>.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>invalid_form_data</code></div><div class="reference-description"><p>The method was called via a <code>POST</code> request with <code>Content-Type</code> <code>application/x-www-form-urlencoded</code> or <code>multipart/form-data</code>, but the form data was either missing or syntactically invalid.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>invalid_metadata_format</code></div><div class="reference-description"><p>Invalid metadata format provided.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>invalid_metadata_schema</code></div><div class="reference-description"><p>Invalid metadata schema provided.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>invalid_post_type</code></div><div class="reference-description"><p>The method was called via a <code>POST</code> request, but the specified <code>Content-Type</code> was invalid. Valid types are: <code>application/json</code> <code>application/x-www-form-urlencoded</code> <code>multipart/form-data</code> <code>text/plain</code>.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>is_archived</code></div><div class="reference-description"><p>Channel has been archived.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>markdown_text_conflict</code></div><div class="reference-description"><p>Markdown text cannot be used in conjunction with <code>blocks</code> or <code>text</code> argument.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>message_limit_exceeded</code></div><div class="reference-description"><p>Members on this team are sending too many messages. For more details, see https://slack.com/help/articles/115002422943-Usage-limits-for-free-workspaces.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>messages_tab_disabled</code></div><div class="reference-description"><p>Messages tab for the app is disabled.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>metadata_must_be_sent_from_app</code></div><div class="reference-description"><p>Message metadata can only be posted or updated using an app-level token.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>metadata_too_large</code></div><div class="reference-description"><p>Metadata exceeds size limit.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>method_deprecated</code></div><div class="reference-description"><p>The method has been deprecated.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>missing_file_data</code></div><div class="reference-description"><p>Attempted to share a file but some required data was missing.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>missing_post_type</code></div><div class="reference-description"><p>The method was called via a <code>POST</code> request and included a data payload, but the request did not include a <code>Content-Type</code> header.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>missing_scope</code></div><div class="reference-description"><p>The token used is not granted the specific scope permissions required to complete this request.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>msg_blocks_too_long</code></div><div class="reference-description"><p>Blocks submitted with this message are too long.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>no_permission</code></div><div class="reference-description"><p>The workspace token used in this request does not have the permissions necessary to complete the request. Make sure your app is a member of the conversation it's attempting to post a message to.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>no_text</code></div><div class="reference-description"><p>No message text provided.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>not_allowed_token_type</code></div><div class="reference-description"><p>The token type used in this request is not allowed.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>not_authed</code></div><div class="reference-description"><p>No authentication token provided.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>not_in_channel</code></div><div class="reference-description"><p>Cannot post user messages to a channel they are not in.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>org_login_required</code></div><div class="reference-description"><p>The workspace is undergoing an enterprise migration and will not be available until migration is complete.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>rate_limited</code></div><div class="reference-description"><p>Application has posted too many messages, <a href="/apis/web-api/rate-limits">read the Rate Limit documentation</a> for more information.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>ratelimited</code></div><div class="reference-description"><p>The request has been ratelimited. Refer to the <code>Retry-After</code> header for when to retry the request.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>request_timeout</code></div><div class="reference-description"><p>The method was called via a <code>POST</code> request, but the <code>POST</code> data was either missing or truncated.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>restricted_action</code></div><div class="reference-description"><p>A workspace preference prevents the authenticated user from posting.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>restricted_action_non_threadable_channel</code></div><div class="reference-description"><p>Cannot post thread replies into a non_threadable channel.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>restricted_action_read_only_channel</code></div><div class="reference-description"><p>Cannot post any message into a read-only channel.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>restricted_action_thread_locked</code></div><div class="reference-description"><p>Cannot post replies to a thread that has been locked by admins.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>restricted_action_thread_only_channel</code></div><div class="reference-description"><p>Cannot post top-level messages into a thread-only channel.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>send_on_behalf_not_allowed</code></div><div class="reference-description"><p>Cannot send on behalf of the provided user.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>service_unavailable</code></div><div class="reference-description"><p>The service is temporarily unavailable</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>slack_connect_canvas_sharing_blocked</code></div><div class="reference-description"><p>Admin has disabled Canvas File sharing in all Slack Connect communications.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>slack_connect_file_link_sharing_blocked</code></div><div class="reference-description"><p>Admin has disabled Slack File sharing in all Slack Connect communications.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>slack_connect_lists_sharing_blocked</code></div><div class="reference-description"><p>Admin has disabled Lists sharing in all Slack Connect communications.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>team_access_not_granted</code></div><div class="reference-description"><p>The token used is not granted the specific workspace access required to complete this request.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>team_added_to_org</code></div><div class="reference-description"><p>The workspace associated with your request is currently undergoing migration to an Enterprise Organization. Web API and other platform operations will be intermittently unavailable until the transition is complete.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>team_not_found</code></div><div class="reference-description"><p>This error occurs if, when using an org-wide token, the <code>channel_name</code> is passed instead of the <code>channel_id</code>.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>token_expired</code></div><div class="reference-description"><p>Authentication token has expired</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>token_revoked</code></div><div class="reference-description"><p>Authentication token is for a deleted user or workspace or the app has been removed when using a <code>user</code> token.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>too_many_attachments</code></div><div class="reference-description"><p>Too many attachments were provided with this message. A maximum of 100 attachments are allowed on a message.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>too_many_contact_cards</code></div><div class="reference-description"><p>Too many contact_cards were provided with this message. A maximum of 10 contact cards are allowed on a message.</p></div></div><div class="reference-facts-item"><div class="reference-name"><code>two_factor_setup_required</code></div><div class="reference-description"><p>Two factor setup is required.</p></div></div></div><hr><h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="legacy">Legacy concerns<a href="#legacy" class="hash-link" aria-label="Direct link to Legacy concerns" title="Direct link to Legacy concerns" translate="no">​</a></h2><div class="theme-admonition theme-admonition-warning admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Information in the section below applies only to classic apps.</div></div><p>This feature works differently for classic apps.</p><h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="legacy_authorship">Legacy authorship<a href="#legacy_authorship" class="hash-link" aria-label="Direct link to Legacy authorship" title="Direct link to Legacy authorship" translate="no">​</a></h3><p>Classic apps using the umbrella <code>bot</code> scope can't request additional scopes to adjust message authorship.</p><h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="legacy_as_user">Legacy <code>as_user</code> parameter<a href="#legacy_as_user" class="hash-link" aria-label="Direct link to legacy_as_user" title="Direct link to legacy_as_user" translate="no">​</a></h4><p>For classic apps, the best way to control the authorship of a message was to be explicit with the legacy <code>as_user</code> parameter. If you didn't use the <code>as_user</code> parameter, <code>chat.postMessage</code> would guess the most appropriate <code>as_user</code> interpretation based on the kind of token you were using. If <code>as_user</code> was not provided at all, the value was inferred based on the scopes granted to the caller: If the caller <em>could</em> post with <code>as_user</code> passed as <code>false</code>, then that was how the method behaved; otherwise, the method behaved as if <code>as_user</code> were passed as <code>true</code>. When the <code>as_user</code> parameter was set to <code>false</code>, messages were posted as "<a class="" href="/reference/events/message/bot_message"><code>bot_messages</code></a>", with message authorship attributed to the user name and icons associated with the classic app.</p><h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="legacy_identity_effect">Effect on identity<a href="#legacy_identity_effect" class="hash-link" aria-label="Direct link to Effect on identity" title="Direct link to Effect on identity" translate="no">​</a></h4><p>Token types provide varying default identity values for <code>username</code>, <code>icon_url</code>, and <code>icon_emoji</code>.</p><ul>
<li class=""><a class="" href="/legacy/legacy-custom-integrations/legacy-custom-integrations-tokens">Test tokens</a> inherits the icon and username of the token owner.</li>
<li class="">Slack App user token with <code>chat:write:user</code> inherits the icon and username of the token owner.</li>
<li class="">Slack App bot user token inherits Slack App's icon and app's bot username.</li>
</ul><h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="legacy_identity_dm">Legacy identity rules in DMs<a href="#legacy_identity_dm" class="hash-link" aria-label="Direct link to Legacy identity rules in DMs" title="Direct link to Legacy identity rules in DMs" translate="no">​</a></h4><p>If using <code>icon_url</code>, <code>icon_emoji</code>, or <code>username</code> with <code>chat.postMessage</code> and a direct message, some special rules apply to ensure the receiver is crystal clear about who is sending the message:</p><ul>
<li class="">If the legacy <code>as_user</code> argument was false:<!-- -->
<ul>
<li class="">Pass the DM channel's ID (<code>D123456</code>) as the value of <code>channel</code> to post to that DM channel <em>as the app, bot, or user associated with the token</em>. You can change the icon and username that go with the message using the <code>icon_url</code> and <code>username</code> parameters. The IM channel's ID can be retrieved through the <a class="" href="/reference/methods/conversations.list">conversations.list</a> API method.</li>
</ul>
</li>
<li class="">If the legacy <code>as_user</code> parameter was true:<!-- -->
<ul>
<li class="">Pass the DM channel's ID (<code>D123456</code>) or a user's ID (<code>U123456</code>) as the value of <code>channel</code> to post to that DM channel <em>as the app, bot, or user associated with the token</em>. The IM channel's ID can be retrieved through the <a class="" href="/reference/methods/conversations.list">conversations.list</a> API method. When <code>as_user</code> is true, the caller may <em>not</em> manipulate the icon and username on the message.</li>
</ul>
</li>
</ul></div></div></div></div></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/reference/methods/chat.postEphemeral"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">chat.postEphemeral</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/reference/methods/chat.scheduleMessage"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">chat.scheduleMessage</div></a></nav></div></div><div class="col col--3"><div class="toc-wrapper-custom"><div class="toc-copy-container"><div class="copy-button-container" style="display:flex;justify-content:flex-start;margin-bottom:1rem"><div class="copy-btn-group"><button type="button" class="minimal-text-btn copy-btn-main ">Copy as markdown</button><button type="button" class="minimal-text-btn copy-btn-arrow" aria-label="More options"><svg width="10" height="6" viewBox="0 0 10 6" fill="none" aria-hidden="true"><path d="M1 1L5 5L9 1" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div></div></div><div class="toc-scroll-area"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#facts" class="table-of-contents__link toc-highlight">Facts</a></li><li><a href="#arguments" class="table-of-contents__link toc-highlight">Arguments</a></li><li><a href="#usage-info" class="table-of-contents__link toc-highlight">Usage info</a><ul><li><a href="#text-blocks-attachments" class="table-of-contents__link toc-highlight">The <code>text</code>, <code>blocks</code> and <code>attachments</code> fields</a></li><li><a href="#formatting" class="table-of-contents__link toc-highlight">Formatting messages</a></li><li><a href="#threads" class="table-of-contents__link toc-highlight">Threads and replies</a></li><li><a href="#channels" class="table-of-contents__link toc-highlight">Channels</a></li><li><a href="#app_home" class="table-of-contents__link toc-highlight">Begin a conversation in a user's App Home</a></li><li><a href="#rate_limiting" class="table-of-contents__link toc-highlight">Rate limiting</a></li><li><a href="#channel_membership" class="table-of-contents__link toc-highlight">Channel membership</a></li><li><a href="#authorship" class="table-of-contents__link toc-highlight">Sending messages as other entities</a></li></ul></li><li><a href="#response" class="table-of-contents__link toc-highlight">Response</a></li><li><a href="#errors" class="table-of-contents__link toc-highlight">Errors</a></li><li><a href="#legacy" class="table-of-contents__link toc-highlight">Legacy concerns</a><ul><li><a href="#legacy_authorship" class="table-of-contents__link toc-highlight">Legacy authorship</a></li></ul></li></ul></div></div></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title">.</div><ul class="footer__items clean-list"><li class="footer__item">
                    <a href="/" class="c-slackhash desktop" aria-label="Slack"><svg width="54" viewBox="0 0 170 170" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="85" cy="85" r="85" fill="#181818"></circle><path d="M170 85C170 38.0558 131.944 0 85 0V85H170Z" fill="#41B658"></path><path d="M85 170C131.944 170 170 131.944 170 85L85 85L85 170Z" fill="#FCC003"></path><path d="M0 85C0 131.944 38.0558 170 85 170L85 85L0 85Z" fill="#E3066A"></path><path d="M85 0C38.0558 0 0 38.0558 0 85L85 85L85 0Z" fill="#1AB9FF"></path><circle cx="84.9999" cy="84.9999" r="77.8505" fill="white"></circle><path d="M136.881 111.624V116.652H108.146V111.624H136.881Z" fill="black"></path><path d="M95.239 116.919H91.1738L82.418 94.7607H88.0467L93.2846 109.61H93.4018L98.327 94.7607H104.034L95.239 116.919Z" fill="black"></path><path d="M80.6335 107.933H63.7863C64.1772 109.848 66.5616 112.389 69.7669 112.389C71.9167 112.389 73.7148 111.529 74.7702 109.614H80.2426C78.8354 113.992 74.3793 117.158 69.7669 117.158C63.2391 117.158 58.314 112.076 58.314 105.666C58.314 99.2554 63.1218 94.0176 69.7278 94.0176C76.021 94.0176 80.9462 98.9818 80.9462 105.314C80.9462 106.135 80.8289 106.995 80.6335 107.933ZM63.63 103.751H75.6301C75.122 100.624 72.9721 98.7864 69.7278 98.7864C66.8743 98.7864 64.4508 100.428 63.63 103.751Z" fill="black"></path><path d="M38.9577 116.92H32V87.9941H38.9187C43.8438 87.9941 48.6126 89.0886 51.4269 92.2939C54.7886 96.0854 55.2185 100.542 55.2185 102.183C55.2185 106.6 53.6941 110.079 51.466 112.503C48.6517 115.551 45.1337 116.92 38.9577 116.92ZM37.3551 111.916H39.075C42.9057 111.916 45.6809 110.9 47.4008 109.063C49.2771 107.069 49.8634 104.45 49.8634 102.535C49.8634 100.151 49.0035 97.8053 47.3227 95.9682C45.5637 94.0528 42.8666 92.9975 38.9187 92.9975H37.3551V111.916Z" fill="black"></path><path d="M137 82.1982H130.433L122.725 71.3487H122.647V82.1982H117.448L117.449 52H122.647L122.647 70.0197H122.725L129.644 59.8177H135.625L127.807 70.4497L137 82.1982Z" fill="black"></path><path d="M107.104 74.4369H112.967C111.13 79.4012 107.065 82.2155 102.101 82.2155C95.6902 82.2155 90.5696 76.9386 90.5696 70.5672C90.5696 64.313 95.6902 59.0752 102.062 59.0752C106.948 59.0752 111.286 62.0068 112.967 67.0101H107.104C105.97 64.9775 104.446 63.844 102.062 63.844C98.3873 63.844 95.7683 66.7756 95.7683 70.6454C95.7683 74.5151 98.5827 77.4467 102.296 77.4467C104.446 77.4467 106.01 76.1959 107.104 74.4369Z" fill="black"></path><path d="M86.3326 81.5119H81.5638V78.8148C79.8439 80.8474 76.6386 82.2155 73.9415 82.2155C67.8438 82.2155 63.4268 77.0949 63.4268 70.5281C63.4268 64.2349 68.0001 59.0752 74.2933 59.0752C77.3422 59.0752 80.352 60.8733 81.4856 62.5541H81.5638V59.8179H86.3326V81.5119ZM75.0751 77.4467C78.8667 77.4467 81.4074 74.3197 81.4074 70.6063C81.4074 66.8147 78.7885 63.844 75.036 63.844C71.4008 63.844 68.6255 66.8929 68.6255 70.7626C68.6255 74.3978 71.4008 77.4467 75.0751 77.4467Z" fill="black"></path><path d="M59.816 82.1982H54.7056V52H59.816V82.1982Z" fill="black"></path><path d="M50.0979 60.2477H44.6256V60.2086C44.4692 58.3323 43.4138 57.0033 41.3812 57.0033C39.7004 57.0033 38.4105 58.2151 38.4105 59.9349C38.4105 61.8112 39.6613 62.9057 42.1239 63.6093C48.2217 65.4073 50.8015 68.1435 50.8015 72.8732C50.8015 78.541 46.6972 82.0981 41.4203 82.0981C36.3779 82.0981 32.3127 78.4629 32 73.225H37.6287C37.9024 75.6094 39.3095 77.0948 41.4594 77.0948C43.6483 77.0948 45.4464 75.4921 45.4464 73.4204C45.4464 71.3097 44.0392 70.0588 41.733 69.238C37.1597 67.5963 33.0554 66.3064 33.0554 60.2477C33.0554 55.3225 36.9642 52 41.5376 52C45.9937 52 49.8243 55.3616 50.0979 60.2477Z" fill="black"></path></svg></a>
                  </li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Tools</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/tools/slack-cli/">Slack CLI</a></li><li class="footer__item"><a class="footer__link-item" href="/tools/#bolt">Bolt frameworks</a></li><li class="footer__item"><a class="footer__link-item" href="/tools/#sdks">Slack SDKs</a></li><li class="footer__item"><a href="https://app.slack.com/block-kit-builder/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Block Kit Builder</a></li><li class="footer__item"><a href="https://api.slack.com/developer-program" target="_blank" rel="noopener noreferrer" class="footer__link-item">Developer program</a></li><li class="footer__item"><a class="footer__link-item" href="/samples/">Code samples &amp; tutorials</a></li><li class="footer__item"><a href="https://docs.slack.dev/llms.txt" target="_blank" rel="noopener noreferrer" class="footer__link-item">LLM? Read llms.txt</a></li><li class="footer__item"><a class="footer__link-item" href="/tools/">All tools</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Learn</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://slack.dev/learning-paths/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Learning paths</a></li><li class="footer__item"><a href="https://slack.dev/workshops" target="_blank" rel="noopener noreferrer" class="footer__link-item">Workshops</a></li><li class="footer__item"><a href="https://trailheadacademy.salesforce.com/all-offerings#f-assetType=Certification&amp;f-products=Slack&amp;f-siteLanguage=en_US" target="_blank" rel="noopener noreferrer" class="footer__link-item">Slack certifications</a></li><li class="footer__item"><a href="https://trailhead.salesforce.com/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Trailhead</a></li><li class="footer__item"><a href="https://slack.dev/resource-library" target="_blank" rel="noopener noreferrer" class="footer__link-item">Resource library</a></li><li class="footer__item"><a href="https://slack.dev/learn" target="_blank" rel="noopener noreferrer" class="footer__link-item">All learning resources</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://slack.dev/community" target="_blank" rel="noopener noreferrer" class="footer__link-item">Slack community</a></li><li class="footer__item"><a href="https://slack.dev/events" target="_blank" rel="noopener noreferrer" class="footer__link-item">Slack events</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Resources</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Docs</a></li><li class="footer__item"><a href="https://slack.dev/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog</a></li><li class="footer__item"><a href="https://slack.com/marketplace" target="_blank" rel="noopener noreferrer" class="footer__link-item">Slack marketplace</a></li><li class="footer__item"><a href="https://slack.dev/newsletter" target="_blank" rel="noopener noreferrer" class="footer__link-item">Developer newsletter</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Manage Apps</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://api.slack.com/apps" target="_blank" rel="noopener noreferrer" class="footer__link-item">Your apps</a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright"><div class="footer__submenu">
          <div>
            <div class="legal-links">
              <ul class="legal_list" aria-label="Legal links">
                <li><a href="https://slack-status.com/" rel="noopener noreferrer" target="_blank">Status</a></li>
                <li><a href="https://slack.com/trust/privacy/privacy-policy">Privacy</a></li>
                <li><a href="https://slack.com/terms-of-service/api" target="_blank" rel="noopener noreferrer">Terms</a></li>
                <li><a class="optanon-show-settings" href="#" data-preference-center="">Cookie Preferences</a></li>
                <li><a href="https://docs.slack.dev/developer-support" rel="noopener noreferrer" target="_blank">Support</a></li>
                <li><a href="https://docs.slack.dev/changelog" rel="noopener noreferrer" target="_blank">Changelog</a></li>
                <li><a class="privacy-choice" href="https://www.salesforce.com/form/other/privacy-request/" aria-label="Your Privacy Choices" title="Your Privacy Choices" target="_blank" rel="noopener"><span>Your Privacy Choices</span><svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="30" height="14" style="enable-background:new 0 0 30 14"><path d="M7.4 12.8h6.8l3.1-11.6H7.4C4.2 1.2 1.6 3.8 1.6 7s2.6 5.8 5.8 5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#fff"></path><path d="M22.6 0H7.4c-3.9 0-7 3.1-7 7s3.1 7 7 7h15.2c3.9 0 7-3.1 7-7s-3.2-7-7-7zm-21 7c0-3.2 2.6-5.8 5.8-5.8h9.9l-3.1 11.6H7.4c-3.2 0-5.8-2.6-5.8-5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#06f"></path><path d="M24.6 4c.2.2.2.6 0 .8L22.5 7l2.2 2.2c.2.2.2.6 0 .8-.2.2-.6.2-.8 0l-2.2-2.2-2.2 2.2c-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8L20.8 7l-2.2-2.2c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0l2.2 2.2L23.8 4c.2-.2.6-.2.8 0z" style="fill:#fff"></path><path d="M12.7 4.1c.2.2.3.6.1.8L8.6 9.8c-.1.1-.2.2-.3.2-.2.1-.5.1-.7-.1L5.4 7.7c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0L8 8.6l3.8-4.5c.2-.2.6-.2.9 0z" style="fill:#06f"></path></svg></a></li>
              </ul>
            </div>
            <small class="legal-text">© 2026 Slack Technologies, LLC, a Salesforce company. All rights reserved. Various trademarks held by their respective owners.</small>
          </div>
          <ul class="social_list">
            <li class="listitem-social">
              <a class="brand-linkedin" aria-label="LinkedIn" title="LinkedIn" target="_blank" rel="noopener" href="https://www.linkedin.com/company/tiny-spec-inc/">
                <svg width="18" height="18" version="1" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" role="presentation"><path d="M1.84613 3.69226C2.86519 3.69226 3.69226 2.86519 3.69226 1.84613C3.69226 0.827067 2.86519 0 1.84613 0C0.827067 0 0 0.827067 0 1.84613C0 2.86519 0.827067 3.69226 1.84613 3.69226ZM0 16V4.92317H3.69226V16H0ZM6.15441 4.92317H9.55991V6.66838H9.60916C10.0829 5.81794 11.2423 4.92317 12.9716 4.92317C16.5666 4.92317 17.2312 7.16068 17.2312 10.0714V16H13.6804V10.7446C13.6804 9.49173 13.6546 7.87821 11.8343 7.87821C9.98578 7.87821 9.70267 9.24311 9.70267 10.6536V16H6.15441V4.92317Z"></path></svg>
              </a>
            </li>
            <li class="listitem-social">
              <a class="brand-bluesky" aria-label="Bluesky" title="Bluesky" target="_blank" rel="noopener" href="https://bsky.app/profile/slack.dev">
                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -3.268 64 68.414" height="18" role="presentation"><path d="M13.873 3.805C21.21 9.332 29.103 20.537 32 26.55v15.882c0-.338-.13.044-.41.867-1.512 4.456-7.418 21.847-20.923 7.944-7.111-7.32-3.819-14.64 9.125-16.85-7.405 1.264-15.73-.825-18.014-9.015C1.12 23.022 0 8.51 0 6.55 0-3.268 8.579-.182 13.873 3.805zm36.254 0C42.79 9.332 34.897 20.537 32 26.55v15.882c0-.338.13.044.41.867 1.512 4.456 7.418 21.847 20.923 7.944 7.111-7.32 3.819-14.64-9.125-16.85 7.405 1.264 15.73-.825 18.014-9.015C62.88 23.022 64 8.51 64 6.55c0-9.818-8.578-6.732-13.873-2.745z"></path></svg>
              </a>
            </li>
            <li class="listitem-social">
              <a class="brand-youtube" aria-label="YouTube" title="YouTube" target="_blank" rel="noopener" href="https://www.youtube.com/channel/UCY3YECgeBcLCzIrFLP4gblw">
                <svg width="18" height="18" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" role="presentation"><path d="M29.41,9.26a3.5,3.5,0,0,0-2.47-2.47C24.76,6.2,16,6.2,16,6.2s-8.76,0-10.94.59A3.5,3.5,0,0,0,2.59,9.26,36.13,36.13,0,0,0,2,16a36.13,36.13,0,0,0,.59,6.74,3.5,3.5,0,0,0,2.47,2.47C7.24,25.8,16,25.8,16,25.8s8.76,0,10.94-.59a3.5,3.5,0,0,0,2.47-2.47A36.13,36.13,0,0,0,30,16,36.13,36.13,0,0,0,29.41,9.26ZM13.2,20.2V11.8L20.47,16Z"></path></svg>
              </a>
            </li>
          </ul>
        </div></div></div></div></footer></div></body></html>