## Retrieve `messages.retrieve(strmessage_id) -> MessageRetrieveResponse` **get** `/api/v2/messages/{message_id}` Retrieve details of a specific message by its ID ### Parameters - `message_id: str` ### Returns - `class MessageRetrieveResponse: …` - `data: Optional[Data]` - `account_email: Optional[str]` Email of the account - `content: Optional[str]` Message content - `date_sent: Optional[datetime]` When the message was sent - `date_updated: Optional[datetime]` When the message was last updated - `error_code: Optional[int]` Numeric error code if message failed - `error_detail: Optional[str]` Detailed error information - `error_message: Optional[str]` Error message if message failed - `error_reason: Optional[str]` Error reason if message failed - `from_number: Optional[str]` Sender phone number - `group_display_name: Optional[str]` Display name for group messages - `group_id: Optional[str]` Group ID for group messages - `is_outbound: Optional[bool]` Whether this is an outbound message - `media_url: Optional[str]` URL of attached media - `message_handle: Optional[str]` Unique message identifier - `message_type: Optional[Literal["message", "group"]]` - `"message"` - `"group"` - `number: Optional[str]` Primary phone number (to_number for outbound, from_number for inbound) - `opted_out: Optional[bool]` Whether the recipient has opted out - `participants: Optional[List[str]]` List of participants for group messages - `plan: Optional[str]` Account plan used for this message - `send_style: Optional[Literal["celebration", "shooting_star", "fireworks", 10 more]]` The iMessage expressive message style - `"celebration"` - `"shooting_star"` - `"fireworks"` - `"lasers"` - `"love"` - `"confetti"` - `"balloons"` - `"spotlight"` - `"echo"` - `"invisible"` - `"gentle"` - `"loud"` - `"slam"` - `sendblue_number: Optional[str]` Sendblue phone number used - `service: Optional[Literal["iMessage", "SMS", "RCS"]]` The messaging service used - `"iMessage"` - `"SMS"` - `"RCS"` - `status: Optional[Literal["REGISTERED", "PENDING", "SENT", 7 more]]` - `"REGISTERED"` - `"PENDING"` - `"SENT"` - `"DELIVERED"` - `"RECEIVED"` - `"QUEUED"` - `"ERROR"` - `"DECLINED"` - `"ACCEPTED"` - `"SUCCESS"` - `to_number: Optional[str]` Recipient phone number - `was_downgraded: Optional[bool]` Whether the message was downgraded from iMessage to SMS - `status: Optional[str]` ### Example ```python import os from sendblue_api import SendblueAPI client = SendblueAPI( api_key=os.environ.get("SENDBLUE_API_API_KEY"), # This is the default and can be omitted api_secret=os.environ.get("SENDBLUE_API_API_SECRET"), # This is the default and can be omitted ) message = client.messages.retrieve( "msg_abc123def456", ) print(message.data) ```