Messages
Operations for sending and managing messages
Get messages
Get a specific message
Send a message
Get message status
Update an App Card
ModelsExpand Collapse
MessageContent object { account_email, content, date_created, 13 more }
reply_to: optional object { message_handle, part_index }
Immediate parent of an iMessage inline reply. The target must belong to the same account, conversation, and sending line.
part_index: optional number
Advanced override for a known part of a multipart target. Omit this in normal
reply requests and never guess it; requests default to 0. When replying to an
attachment represented by its own webhook, use that webhook’s message_handle
and omit part_index so Sendblue can use the stored authoritative part.
Responses omit it when no authoritative immediate-parent part is available.
seat_id: optional string
UUID of the seat that sent the message. Present when seat_id was provided on
send, or for dashboard-originated group messages.
sender_email: optional string
Email of the seat (user) that sent the message. Auto-populated when a seat_id
is provided on send. null for messages sent without a seat_id.
MessageResponse object { account_email, app_card, content, 17 more }
app_card: optional object { appName, extensionBundleId, layout, 7 more } or object { balloonBundleId, extensionBundleId, revision, 3 more }
App Card data sent or received with this message.
AppCard object { appName, extensionBundleId, layout, 7 more }
A Sendblue App Card rendered with Apple’s Messages framework. App Cards require a V2 Mac line and an
iMessage-capable recipient; they never fall back to SMS. The URL is delivered to the
identified Messages extension when the recipient taps the card. An initial App Card may include
reply_to to create an inline reply. Later state changes use the update endpoint, which sends a new
Apple message in the same App Card session. The feature is unavailable on the free plan.
layout: object { caption, imageSubtitle, imageTitle, 5 more }
Visible card fields mirroring Apple’s MSMessageTemplateLayout.
imageSubtitle: optional string
Secondary text overlaid on the preview image. Requires imageUrl.
imageUrl: optional string
HTTPS preview image fetched by the worker and sent as a hidden card attachment. JPEG, PNG, HEIC, HEIF, and WebP are supported up to 10 MB.
url: string
URL delivered to the iMessage extension on tap. HTTPS URLs are limited to 2048 characters; data URLs carrying inline app state are limited to 16384.
appStoreId: optional number
Optional numeric App Store ID for recipients without the extension.
fallbackText: optional string
Fallback text for notifications and surfaces that cannot render the card.
interactive: optional boolean
Use Apple’s live layout when the extension is installed; false always sends the static template layout.
reply_to: optional object { message_handle, part_index }
Immediate parent of an iMessage inline reply. The target must belong to the same account, conversation, and sending line.
part_index: optional number
Advanced override for a known part of a multipart target. Omit this in normal
reply requests and never guess it; requests default to 0. When replying to an
attachment represented by its own webhook, use that webhook’s message_handle
and omit part_index so Sendblue can use the stored authoritative part.
Responses omit it when no authoritative immediate-parent part is available.
seat_id: optional string
UUID of the seat that sent the message. Present when seat_id was provided on
send, or for dashboard-originated group messages.
sender_email: optional string
Email of the seat (user) that sent the message. Auto-populated when a seat_id
is provided on send. null for messages sent without a seat_id.
MessageListResponse object { data, pagination, status }
data: optional array of object { accountEmail, content, date_sent, 27 more }
reply_to: optional object { message_handle, part_index }
Immediate parent of an iMessage inline reply. The target must belong to the same account, conversation, and sending line.
part_index: optional number
Advanced override for a known part of a multipart target. Omit this in normal
reply requests and never guess it; requests default to 0. When replying to an
attachment represented by its own webhook, use that webhook’s message_handle
and omit part_index so Sendblue can use the stored authoritative part.
Responses omit it when no authoritative immediate-parent part is available.
seat_id: optional string
UUID of the seat that sent the message. Present when seat_id was provided on
send, or for dashboard-originated group messages.
sender_email: optional string
Email of the seat (user) that sent the message. Auto-populated when a seat_id
is provided on send. null for messages sent without a seat_id.
MessageRetrieveResponse object { data, status }
data: optional object { accountEmail, content, date_sent, 27 more }
reply_to: optional object { message_handle, part_index }
Immediate parent of an iMessage inline reply. The target must belong to the same account, conversation, and sending line.
part_index: optional number
Advanced override for a known part of a multipart target. Omit this in normal
reply requests and never guess it; requests default to 0. When replying to an
attachment represented by its own webhook, use that webhook’s message_handle
and omit part_index so Sendblue can use the stored authoritative part.
Responses omit it when no authoritative immediate-parent part is available.
seat_id: optional string
UUID of the seat that sent the message. Present when seat_id was provided on
send, or for dashboard-originated group messages.
sender_email: optional string
Email of the seat (user) that sent the message. Auto-populated when a seat_id
is provided on send. null for messages sent without a seat_id.