Get a message for display
const url = 'https://mail.work.optidata.cloud/api/mail/mailboxes/78/messages/4186';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://mail.work.optidata.cloud/api/mail/mailboxes/78/messages/4186 \ --header 'Authorization: Bearer <token>'One message prepared for a reader UI: the sanitised HTML body, the addresses grouped by role, the recipient set a reply all would use, a localised date string and the attachment list.
Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters”Id of the mailbox. Every mailbox the caller may use is listed in their account.
Id of the message.
Responses
Section titled “ Responses ”The message, prepared for display.
A message prepared for a reader UI, with the recipient set a reply all would use already computed.
object
object
Sanitised HTML.
The addresses of the message, grouped by role.
object
One participant of a message.
object
Display name, when one is known.
The role the address plays: f sender, t recipient, c carbon copy,
b blind copy, r reply-to.
One participant of a message.
object
Display name, when one is known.
The role the address plays: f sender, t recipient, c carbon copy,
b blind copy, r reply-to.
One participant of a message.
object
Display name, when one is known.
The role the address plays: f sender, t recipient, c carbon copy,
b blind copy, r reply-to.
Who a reply and a reply-all should go to.
object
The address the reply would be sent from.
One participant of a message.
object
Display name, when one is known.
The role the address plays: f sender, t recipient, c carbon copy,
b blind copy, r reply-to.
Additional recipients a reply-all would add.
One participant of a message.
object
Display name, when one is known.
The role the address plays: f sender, t recipient, c carbon copy,
b blind copy, r reply-to.
One participant of a message.
object
Display name, when one is known.
The role the address plays: f sender, t recipient, c carbon copy,
b blind copy, r reply-to.
One participant of a message.
object
Display name, when one is known.
The role the address plays: f sender, t recipient, c carbon copy,
b blind copy, r reply-to.
One participant of a message.
object
Display name, when one is known.
The role the address plays: f sender, t recipient, c carbon copy,
b blind copy, r reply-to.
The message date, already localised for display.
A file carried by a message.
object
MIME part number, used to download it.
The cid an inline image is referenced by inside the body.
attachment or inline.
Position used to name a file that arrived without one.
Icon hint for a file-type badge.
Signed download link, populated by the reader operations. Use it as-is.
Examples
{ "message": { "id": 4186, "subject": "Quarterly report", "body": "<div>Hi Jane, here are the files you asked for.</div>" }, "mentions_by_type": { "from": [ { "name": "John Roe", "email": "john.roe@example.com", "type": "f" } ], "to": [ { "name": "Jane Doe", "email": "jane.doe@acme.example", "type": "t" } ], "cc": [] }, "reply_recipients": { "from": [ "jane.doe@acme.example" ], "to": [ { "name": "John Roe", "email": "john.roe@example.com", "type": "f" } ], "to_extra": [], "cc": [], "bcc": [] }, "sender": { "name": "John Roe", "email": "john.roe@example.com", "type": "f" }, "formatted_date": "Wednesday, Aug 19, 2026 at 09:45", "attachments": [ { "part": "2", "filename": "report.docx", "contentType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "contentId": "<f_mt032taz0>", "disposition": "attachment", "hasExplicitAttachmentDisposition": true, "fallbackOrdinal": null, "sizeBytes": 8503, "icon": "bi-file-earmark-word icon-file-doc", "url": null } ]}Missing, malformed or expired authentication key.
Authentication failures use an error key rather than message.
object
Examples
No bearer token sent
{ "error": "JWT passport exception: Missing bearer token in request"}The caller may not act on this mailbox, user or resource.
Generic error envelope used by policy, binding and framework failures.
object
Human-readable description of the failure.
Examples
{ "message": "This action is unauthorized."}Rate limit exceeded. Retry after the window resets.
Generic error envelope used by policy, binding and framework failures.
object
Human-readable description of the failure.
Examples
{ "message": "Too Many Attempts."}The mail platform did not answer as expected — a folder or message that
does not exist, or a transient failure. reference is the code to quote to
support and fault_code names the underlying condition. A 503 with the
same envelope means the platform is in maintenance; retry shortly.
Failure raised by the mail platform behind the API rather than by the request itself.
object
What went wrong, phrased for the end user.
Repeats the HTTP status code.
Suggested next step.
Support reference, e.g. MZ-502.
Names the underlying condition, e.g. mail.NO_SUCH_FOLDER.
Examples
Unknown folder
{ "error": "The mail server did not answer as expected, so this action could not be completed.", "status": 502, "help": "If the problem persists, contact support and inform the error code above.", "reference": "MZ-502", "fault_code": "mail.NO_SUCH_FOLDER"}Unknown message
{ "error": "The mail server did not answer as expected, so this action could not be completed.", "status": 502, "help": "If the problem persists, contact support and inform the error code above.", "reference": "MZ-502", "fault_code": "mail.NO_SUCH_MSG"}