Skip to main content
One endpoint sends every message, to a person or a conversation. Requires messages:write.

Send

Idempotency-Key is required on every send. See Idempotency before you write retry logic. Response 201:
conversation_id is dm_… for a direct message, or the grp_… / chn_… you sent to. Keep it — you’ll want it for edits, and it’s what interaction callbacks reference in a later phase.

Edit

Body is { "text": "…", "blocks": […], "metadata": {…} }. text is required. blocks replaces the stored blocks — leave it out to clear them. metadata, if present, is merged key-by-key into what’s already stored (it doesn’t replace it). to, thread_id and unfurl_links are ignored; you can’t move a message after sending it. You can only edit messages your own bot sent.
200

Delete

Returns 200 {"ok": true}, or 404 message_not_found if it’s already gone — treat both as success. This works even after your bot was removed from the conversation. Deletion removes the message’s content immediately from every client and API; see Data & security.

Errors specific to sending

Full table on Errors.