Read Message
Read a single message, including its current delivery status and any attachments.
Attachment url values are generated per request and expire 15 minutes after the response is issued.
Fetch the attachment promptly or re-read the message to obtain a fresh URL.
This endpoint is part of our evolving API ecosystem. To explore availability for your integration, please contact our team.
Field selection is not available on this endpoint. The fields query parameter is ignored.
Authentication
Path parameters
Response
True when an inbound message is a phone tapback reaction (for example Loved "See you at 3") rather than a written message (same rule as message.received isReaction). Always present on GET /messages and GET /messages/{messageId}; false for outbound messages.
Direction and origin of the message. Messages created through POST /messages are always OUTBOUND.
Current delivery status. Statuses reported by the downstream carrier or email provider are passed through verbatim, so this is an open set rather than a fixed enum.
Statuses set by Fortress: CREATED, PROCESSING, FAILED, INVALID_PHONE_NUMBER,
INVALID_EMAIL, RECEIVED, AUTOMATED, MASS_COMMUNICATION.
Statuses reported by the carrier: QUEUED, SENT, DELIVERED, UNDELIVERED, FAILED.
The terminal statuses for SMS are DELIVERED, UNDELIVERED, and FAILED. For email they
are DELIVERED, FAILED, and REJECTED.
Caller-supplied key that uniquely identifies the send request. Reusing a key returns the original message rather than sending a duplicate.
True while this message has an open needs-help flag. Absent on messages that have never been flagged.
Who raised the needs-help flag, why, and who resolved it. Absent on messages that have
never been flagged. The flag details survive resolution, so this still describes the
original request after needsHelp returns to false.
Caller-supplied metadata, plus sentAt and sentBy recorded by Fortress at send time.

