Skip to main content
GET
Get a message

Authorizations

Authorization
string
header
required

Bearer token authentication

Path Parameters

conversation_id
string
required

The conversation's uuid_v7 or numeric id.

id
string
required

The message's uuid_v7 or numeric id.

Response

The message.

A message as it appears in a conversation's message list. Deleted messages keep their place in the list with the body replaced by a deletion notice and their attachments, mentions, and seen-by details emptied.

id
integer
required

The message ID.

conversation_id
integer
required

The conversation the message belongs to.

body
string | null
required

The message text, or a deletion notice when the message was deleted.

type
string
required

The message type, for example DirectMessage, SmsMessage, EmailMessage, or InfoMessage.

status
enum<string>
required

Delivery status.

Available options:
queued,
sent,
failed
created_at
string<date-time>
required
sent_at
string<date-time> | null
required

When the message was sent, falling back to its creation time.

reply_count
integer

On a thread's first message, how many replies the thread has; 0 otherwise.

last_reply_at
string<date-time> | null

On a thread's first message, when its latest reply was posted.

reply_recipients
object[]

On a thread's first message, the up to three people who replied most recently.

thread_unread_count
integer

On a thread's first message, how many of its replies you follow and have not read.

also_sent_to_channel
boolean

On a thread reply, whether it was also posted to the conversation.

app
object | null

For a message an incoming webhook or an app's own Flow sender posted, the app it shows as; null for every other message.

sent_via
object | null

For a message an app sent as a person who allowed it to, the app it was sent through; null otherwise.

blocks
object[]

The bot's interactive cards on this message; empty for a person's message.

An interactive card a bot attaches to its message. A choices card asks one multiple-choice question; a person answers it by posting the option's label with in_reply_to_block, which records answered_option_id on the card. A card with allow_custom also takes a typed answer, sent as option custom with custom_value; an answered card keeps the answer's words in answered_value (D-423). A card naming an onboarding purpose carries the action Fluid applies when the bot's owner or a steward answers it. An integration card offers a connection the bot can use.

uuid_v7
string<uuid>

The stable UUIDv7 identifier. Messaging routes accept it wherever they accept the numeric id.

edited_at
string<date-time> | null

When the sender last edited the message, or null.

deleted_at
string<date-time> | null

When the message was deleted, for everyone or only for you, or null.

pinned
boolean | null

Whether the message is pinned in the conversation.

reaction
string | null

Your own emoji reaction to the message, or null.

reaction_stats

Reaction counts keyed by emoji, or null when nobody has reacted.

metadata

Message metadata, including the client_message_id sent at creation.

seen_by_count
integer

How many recipients have seen the message.

emoji_only_count
integer | null

The number of emoji when the body consists only of emoji.

seen_by
object[]

Up to 25 recipients who most recently saw the message. Always empty in channels.

sender_recipient
object | null

The recipient who sent the message.

mentioned_recipients
object[]
attachments
object[]
replied_to_message
MessagingMessage · object | null

The message this one replies to, or null.