Mailbox API

Get a mailbox message

Changed on

Returns one message from the authenticated mailbox. Responses include a weak ETag header. When attachment metadata includes short-lived download URLs, a conditional request may return 200 even when the stable message ETag matches so the response can renew expired URLs.

get/mailbox/messages/{message_id}

Request

  • Base URL: https://app.sendmux.ai/api/v1
  • URL: https://app.sendmux.ai/api/v1/mailbox/messages/{message_id}
  • Auth: one of:
    • HTTP bearer
    • OAuth 2 (authorization code, authorization URL https://app.sendmux.ai/oauth/authorize, token URL https://app.sendmux.ai/oauth/token, scopes: mailbox.read)

Path parameters

message_idstring required

Message ID.

Query parameters

mailbox_idstring

Mailbox public ID to target when the credential grants access to more than one mailbox. Omit when the credential is scoped to exactly one mailbox.

Headers

If-None-Matchstring

Weak ETag from a previous response. Returns 304 when unchanged.

Response

Message

oktrue required

Example response

{
  "meta": {
    "request_id": "req_clxxxxxxxxxxxxxxxxxxxxxxxxx"
  },
  "data": {
    "attachments": [
      {
        "content_type": "application/pdf",
        "disposition": "attachment",
        "download_url": "https://app.sendmux.ai/api/v1/mailbox/messages/msg_123/attachment-downloads/attref_abc123?download_token=...",
        "filename": "invoice.pdf",
        "size_bytes": 12345
      }
    ],
    "bcc": [
      {
        "email": "agent@example.com",
        "name": "Support"
      }
    ],
    "cc": [
      {
        "email": "agent@example.com",
        "name": "Support"
      }
    ],
    "from": {
      "email": "agent@example.com",
      "name": "Support"
    },
    "in_reply_to": [
      "20260918.0009@example.com"
    ],
    "keywords": [
      "$seen",
      "$flagged",
      "agent_triaged"
    ],
    "message_id": [
      "20260919.0001@example.com"
    ],
    "references": [
      "20260917.0001@example.com",
      "20260918.0009@example.com"
    ],
    "reply_to": [
      {
        "email": "agent@example.com",
        "name": "Support"
      }
    ],
    "to": [
      {
        "email": "agent@example.com",
        "name": "Support"
      }
    ]
  }
}

Changes

    • info

      removed subschema #2 from the // response property allOf list for the response status

    • info

      added subschema #2 to the // response property anyOf list for the response status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • breaking

      the / response's property type changed from no type to object for status

    • info

      added the optional property // to the response with the status

    • info

      removed subschema #2 from the / response property allOf list for the response status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status