Skip to content
Get Started

Get a specific message

GET/api/v2/messages/{message_id}

Retrieve details of a specific message by its ID

Path ParametersExpand Collapse
message_id: string
ReturnsExpand Collapse
data: optional object { accountEmail, content, date_sent, 27 more }
accountEmail: optional string

Email of the account

content: optional string

Message content

date_sent: optional string

When the message was sent

formatdate-time
date_updated: optional string

When the message was last updated

formatdate-time
error_code: optional number

Numeric error code if message failed

error_detail: optional string

Detailed error information

error_message: optional string

Error message if message failed

error_reason: optional string

Error reason if message failed

from_number: optional string

Sender phone number

group_display_name: optional string

Display name for group messages

group_id: optional string

Group ID for group messages

is_outbound: optional boolean

Whether this is an outbound message

location: optional object { latitude, longitude, accuracy, 3 more }

Decoded Find My location share coordinates.

latitude: number
longitude: number
accuracy: optional number

Horizontal accuracy in meters

formatdouble
altitude: optional number

Altitude in meters

formatdouble
duration: optional string

Share duration selected by the recipient

timestamp: optional string
media_url: optional string

URL of attached media

message_handle: optional string

Unique message identifier

message_type: optional "message" or "group" or "location"
One of the following:
"message"
"group"
"location"
number: optional string

Primary phone number (to_number for outbound, from_number for inbound)

opted_out: optional boolean

Whether the recipient has opted out

participants: optional array of string

List of participants for group messages

plan: optional string

Account plan used for this message

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.

message_handle: string

Public handle of the immediate parent message

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.

minimum0
maximum50
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.

formatuuid
send_style: optional "celebration" or "shooting_star" or "fireworks" or 10 more

The iMessage expressive message style

One of the following:
"celebration"
"shooting_star"
"fireworks"
"lasers"
"love"
"confetti"
"balloons"
"spotlight"
"echo"
"invisible"
"gentle"
"loud"
"slam"
sendblue_number: optional string

Sendblue phone number used

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.

formatemail
service: optional "iMessage" or "SMS" or "RCS"

The messaging service used

One of the following:
"iMessage"
"SMS"
"RCS"
status: optional "REGISTERED" or "PENDING" or "SENT" or 7 more
One of the following:
"REGISTERED"
"PENDING"
"SENT"
"DELIVERED"
"RECEIVED"
"QUEUED"
"ERROR"
"DECLINED"
"ACCEPTED"
"SUCCESS"
thread_originator: optional object { message_handle, part }

Message that originated an iMessage inline-reply thread.

message_handle: string

Public handle of the thread’s root message

part: optional string

Opaque Apple thread-originator part descriptor

to_number: optional string

Recipient phone number

was_downgraded: optional boolean

Whether the message was downgraded from iMessage to SMS

status: optional string

Get a specific message

curl https://api.sendblue.co/api/v2/messages/$MESSAGE_ID \
    -H "sb-api-key-id: $SENDBLUE_API_API_KEY" \
    -H "sb-api-secret-key: $SENDBLUE_API_API_SECRET"
{
  "data": {
    "accountEmail": "[email protected]",
    "content": "Hello, World!",
    "date_sent": "2024-01-01T12:00:00Z",
    "date_updated": "2024-01-01T12:00:01Z",
    "error_code": null,
    "error_detail": null,
    "error_message": null,
    "error_reason": null,
    "from_number": "+19998887777",
    "group_display_name": null,
    "group_id": null,
    "is_outbound": true,
    "location": {
      "latitude": 37.7749,
      "longitude": -122.4194,
      "accuracy": 12,
      "altitude": 8,
      "duration": "oneHour",
      "timestamp": "2026-06-23T12:00:00.000Z"
    },
    "media_url": null,
    "message_handle": "msg_abc123def456",
    "message_type": "message",
    "number": "+18887776666",
    "opted_out": false,
    "participants": [
      "string"
    ],
    "plan": "premium",
    "reply_to": {
      "message_handle": "msg_parent123",
      "part_index": 0
    },
    "seat_id": "550e8400-e29b-41d4-a716-446655440000",
    "send_style": "celebration",
    "sendblue_number": "+19998887777",
    "sender_email": "[email protected]",
    "service": "iMessage",
    "status": "SENT",
    "thread_originator": {
      "message_handle": "msg_root456",
      "part": "0:0"
    },
    "to_number": "+18887776666",
    "was_downgraded": false
  },
  "status": "OK"
}
Returns Examples
{
  "data": {
    "accountEmail": "[email protected]",
    "content": "Hello, World!",
    "date_sent": "2024-01-01T12:00:00Z",
    "date_updated": "2024-01-01T12:00:01Z",
    "error_code": null,
    "error_detail": null,
    "error_message": null,
    "error_reason": null,
    "from_number": "+19998887777",
    "group_display_name": null,
    "group_id": null,
    "is_outbound": true,
    "location": {
      "latitude": 37.7749,
      "longitude": -122.4194,
      "accuracy": 12,
      "altitude": 8,
      "duration": "oneHour",
      "timestamp": "2026-06-23T12:00:00.000Z"
    },
    "media_url": null,
    "message_handle": "msg_abc123def456",
    "message_type": "message",
    "number": "+18887776666",
    "opted_out": false,
    "participants": [
      "string"
    ],
    "plan": "premium",
    "reply_to": {
      "message_handle": "msg_parent123",
      "part_index": 0
    },
    "seat_id": "550e8400-e29b-41d4-a716-446655440000",
    "send_style": "celebration",
    "sendblue_number": "+19998887777",
    "sender_email": "[email protected]",
    "service": "iMessage",
    "status": "SENT",
    "thread_originator": {
      "message_handle": "msg_root456",
      "part": "0:0"
    },
    "to_number": "+18887776666",
    "was_downgraded": false
  },
  "status": "OK"
}