Slack Message Character Limit: 40,000 Max, 4,000 Advised
Slack keeps up to 40,000 characters in a message's text and truncates anything longer, and its developer docs advise staying under 4,000 characters. Block Kit sections stop at 3,000 characters and headers at 150. What happens with long messages, other Slack text limits, and how to split a long post.
On this page
The Slack message character limit is 40,000 characters. Slack's developer docs say messages with more than 40,000 characters in the text field are truncated, and they advise keeping the text under 4,000 characters for best results. In our API test on 1 October 2026, Slack did not cut long text: it split it into separate messages of 4,000 characters. If you use Block Kit, each block has its own limit: 3,000 characters for a section block's text, 150 for a header, and up to 50 blocks per message. For anything longer, Slack suggests a snippet, and a canvas works well for long documents.
To check how a long message looks before you post, draft it in the Markdown to Slack converter.
Slack text limits in one table
| Where the text goes | Limit | Source |
|---|---|---|
| Message text field | 40,000 characters, then truncated | chat.postMessage docs |
| Recommended message length | Under 4,000 characters | chat.postMessage docs |
| Block Kit section block text | 3,000 characters | Section block reference |
| Block Kit header block | 150 characters, plain text only | Header block reference |
| Each markdown block | 12,000 characters (12,001 returned msg_too_long in our test) | Markdown block reference, our test |
| Blocks in one message | 50, or 100 in modals and Home tabs | Blocks reference |
The 40,000 limit has applied since August 2018, when Slack's changelog says it lowered the ceiling step by step from 500,000 characters. It applies to every way of posting: chat.postMessage, chat.postEphemeral, incoming webhooks, slash command responses and interactive messages.
A few other limits people search for: a Slack status holds 100 characters (101 returned too_long in our test on 7 October), and a channel name 80. Ideas that fit in 100 characters are in Slack status examples.
Is there a 4,000 character limit in Slack?
Not a hard one. 4,000 is the length Slack's docs recommend for the text field, not the point where Slack cuts. Before 2018, Slack's guidance was to keep messages under 4,000 bytes, which is where the number people quote comes from. A 5,000-character message posts fine, as two messages when it comes through the API. It is long for a chat, so a thread or a snippet reads better.
What happens when a Slack message is too long
- • In the API or a webhook. We measured this on 1 October 2026 with a bot token and an incoming webhook.
chat.postMessageaccepted 40,001 characters withok: trueand no warning, and posted the text as ten separate messages of about 4,000 characters each. The webhook also answeredok, but it posted at most four messages of 4,000 characters: from a 20,000-character text, 16,000 characters arrived and the rest was dropped without an error.chat.updaterefuses anything over 4,000 characters withmsg_too_long; the full test is in Slack chat.update, tested. - • In a Block Kit message. A section with more than 3,000 characters, or more than 50 blocks, fails validation, and nothing posts. Split the text across several section blocks. Every limit we hit, with its error text, is on the invalid_blocks page.
- • In the Slack app. We repeated the split on 7 October 2026 with the web app's own session token: a 5,000-character text of numbered lines became two messages of 3,994 and 1,005 characters, cut at the line break before 4,000. Both showed in full in the web app, with no collapse.
Never appear "away" on Slack again
Cloud-based. No downloads. Works 24/7 even when your laptop is off.
How to post a long message in Slack
To check the length before you post, paste the message into the Block Kit checker. It counts the text the way Slack stores it (& becomes &, an emoji becomes its :name:) and shows how many messages it turns into on chat.postMessage or a webhook.
Split a long message for the Slack API
If a bot posts reports that can run long, split the text at line breaks before you send:
def split_for_slack(text: str, limit: int = 3900) -> list[str]:
# Split on line breaks so no chunk passes the limit
chunks, current = [], ""
for line in text.splitlines(keepends=True):
while len(line) > limit: # one very long line
chunks.append(line[:limit])
line = line[limit:]
if len(current) + len(line) > limit:
chunks.append(current)
current = ""
current += line
if current:
chunks.append(current)
return chunks
Post the first chunk, then post the rest with thread_ts set to the first message's ts, so they stay together in one thread. A limit of 3,900 keeps each part under the 4,000 characters Slack recommends. If you send the parts as section blocks, use 3,000 instead. Converting markdown first? The Markdown to Slack converter turns a long markdown report into Slack's format.
FAQ
How many characters can a Slack message have?
Slack's docs say 40,000 in the text field. In our test, chat.postMessage split anything longer than about 4,000 characters into several messages, and an incoming webhook posted at most 16,000 characters.
What is the Slack character limit for Block Kit? 3,000 characters for a section's text, 150 for a header, and 50 blocks per message.
Why did my long Slack message arrive as two messages? Text over about 4,000 characters sent through the API is split at a line break into several messages. Our 5,000-character test became 3,994 and 1,005 characters.
How long can a Slack status be? 100 characters.
Stop Jiggling Your Mouse.
Join hundreds of remote workers who never worry about their Slack status. Set it up once, stay green forever.
Related Articles
How to See All Your DMs in Slack, Including the Hidden Ones
The DMs tab lists your direct messages with people. App DMs, Slackbot and DMs with deleted accounts sit elsewhere. We compared the tab with the full list the Slack API returned.
Slack Images Not Showing? 5 Causes We Reproduced
We uploaded images to a Slack test channel and then switched each image setting off, ran /collapse, and posted from a bot that was not in the channel. Five causes, each reproduced.
How to Message Yourself on Slack (and What It Notifies)
Your own name under Direct messages opens a private DM with yourself. We sent it a note, a file, a scheduled message and a reminder, and checked which ones raised a badge.