The standard shape
Currently
"1". Optional — leave it out and you get "1". Any other value is rejected with BLOCK_KIT_VERSION_UNSUPPORTED.1–10 messages. Each one becomes its own chat bubble group. That lets one reply arrive as a few short bubbles instead of one wall of text.
block_id (same character rules as mid). Leave it out and we make one, like blk_a1b2c3d4e5f6.
Block types
Ten block types, each with its own page.Shortcuts
You rarely need the full shape. We accept all of these and convert them into the standard shape for you. Your first try usually just works.What we clean up for you
We trim spaces from the ends of
label, title, name, action_id, and submit_label. Spaces inside text are kept, because markdown needs them.
Markdown
Markdown works intext blocks, card.text, status.detail, and form help.
Supported: bold, italic, strikethrough, inline code, code blocks, links, autolinks, ordered and unordered lists, quotes, headings, tables, and line breaks.
A single newline makes a line break — Slack-style, not strict CommonMark. That is what most people expect.
Not supported:
- Raw HTML. It is stripped before drawing, never run.
- Image syntax
. It shows as a plain link — use theimageblock instead. - Footnotes and task-list checkboxes.
https: or mailto:. Anything else — including javascript: and data: — shows as plain text. Every link opens in a new tab.
Unicode emoji pass through untouched.
:shortcode: emoji are not translated.Versions
block_kit_version is a string. New things are added inside "1" — new block types, new optional fields, higher limits. They will not break you.
Unknown block types do not crash anything. They show as a placeholder in the app and are skipped on public pages. An old widget will not break when a new block ships.
Next
Every block type
All ten, with full schemas.
Limits and errors
Every limit, and what happens when you cross one.

