Messages
Messages are individual communications within a chat thread.
Messages can include text, media attachments, rich link previews, and reactions. All messages are associated with a specific chat and sent from a phone number you own.
Messages support delivery status tracking and read receipts.
Rich Link Previews
Send a URL as a link part to deliver it with a rich preview card showing the
page’s title, description, and image (when available). A URL inside a text
part renders a preview too.
Limitations:
- A message carries exactly one part, so a link is never combined with text or media.
- Maximum URL length: 2,048 characters.
Get all messages in a thread
Get a message by ID
Delete a message from system
Add or remove a reaction to a message
ModelsExpand Collapse
Message object { id, chat_id, created_at, 14 more }
DEPRECATED: Use delivery_status instead (true when delivery_status is delivered or read). Whether the message has been delivered.
DEPRECATED: Use delivery_status == "read" instead. Whether the message has been read.
DEPRECATED: Use from_handle instead. Phone number of the message sender.
The sender of this message as a full handle object
The sender of this message as a full handle object
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and a conversation can fall back from RCS to SMS.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and a conversation can fall back from RCS to SMS.
line_type: optional "iMessage" or "RCS"The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
parts: optional array of TextPartResponse { reactions, type, value } or MediaPartResponse { id, filename, mime_type, 4 more } or LinkPartResponse { reactions, type, value } Message parts in order (text, media, and link)
Message parts in order (text, media, and link)
TextPartResponse object { reactions, type, value } A text message part
A text message part
Reactions on this message part
Reactions on this message part
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and a conversation can fall back from RCS to SMS.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and a conversation can fall back from RCS to SMS.
line_type: optional "iMessage" or "RCS"The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
MediaPartResponse object { id, filename, mime_type, 4 more } A media attachment part
A media attachment part
Reactions on this message part
Reactions on this message part
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and a conversation can fall back from RCS to SMS.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and a conversation can fall back from RCS to SMS.
line_type: optional "iMessage" or "RCS"The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
LinkPartResponse object { reactions, type, value } A rich link preview part
A rich link preview part
Reactions on this message part
Reactions on this message part
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and a conversation can fall back from RCS to SMS.
Messaging service type. Where this names the transport a message used,
it is per-message: a chat’s own service can differ from a message in
it, and a conversation can fall back from RCS to SMS.
line_type: optional "iMessage" or "RCS"The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
The kind of line: iMessage for an iMessage-capable line, RCS for an
RCS-only line, which sends RCS and SMS but never iMessage. Same values as
the type parameter on GET /v3/available_number. A property of the line
itself, so unlike service it does not change with the conversation:
an iMessage-capable line can still carry an RCS or SMS conversation.
Present only when this message was recovered by reconciliation rather than delivered live, and set to the time of that recovery. The field is omitted entirely for normally-delivered messages, which is the overwhelming majority. When present, expect sent_at to be substantially earlier — the message is genuine but was ingested late, so it may not have appeared in earlier reads of this conversation.