> ## Documentation Index
> Fetch the complete documentation index at: https://sendmux.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Batch get mailbox messages

> Returns exact messages by ID. Use `body_mode` to choose summary-only output, raw body output, or clean JSON content. Attachment output remains metadata only; attachment contents are not parsed.



## OpenAPI

````yaml /openapi-app.json post /mailbox/messages:batch-get
openapi: 3.1.0
info:
  description: Programmatic access to your Sendmux email infrastructure.
  title: Sendmux API
  version: 1.0.0
servers:
  - description: API v1
    url: https://app.sendmux.ai/api/v1
security:
  - bearerAuth: []
paths:
  /mailbox/messages:batch-get:
    post:
      tags:
        - Mailbox API
      summary: Batch get mailbox messages
      description: >-
        Returns exact messages by ID. Use `body_mode` to choose summary-only
        output, raw body output, or clean JSON content. Attachment output
        remains metadata only; attachment contents are not parsed.
      operationId: mailboxBatchGetMessages
      parameters:
        - description: >-
            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.
          in: query
          name: mailbox_id
          required: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MailboxBatchGetBody'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MailboxBatchGetResultResponse'
          description: Batch message result
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Invalid request body
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Message not found
        '413':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Request body too large
      security:
        - bearerAuth: []
components:
  schemas:
    MailboxBatchGetBody:
      additionalProperties: false
      properties:
        body_mode:
          description: Body shape to include for each message.
          enum:
            - none
            - raw
            - clean_json
          type: string
        ids:
          description: Message IDs to fetch, maximum 100.
          items:
            type: string
          maxItems: 100
          minItems: 1
          type: array
        include_attachments:
          description: Attachment detail to include. Contents are not returned.
          enum:
            - none
            - metadata
          type: string
        include_headers:
          description: Header detail to include in each message.
          enum:
            - none
            - selected
            - full
          type: string
        include_html:
          description: When true, include HTML content when available.
          type: boolean
        include_links:
          description: When true, include links extracted from the body.
          type: boolean
        max_body_chars:
          description: Maximum body characters per message before truncation.
          maximum: 1000000
          minimum: 1
          type: integer
        part:
          description: Body part to return when body_mode is not `none`.
          enum:
            - auto
            - text
            - html
            - both
          type: string
        strip_quotes:
          description: When true, remove quoted reply text.
          type: boolean
        strip_signature:
          description: When true, remove detected email signatures.
          type: boolean
      required:
        - ids
      type: object
    MailboxBatchGetResultResponse:
      allOf:
        - $ref: '#/components/schemas/SuccessEnvelope'
        - properties:
            data:
              $ref: '#/components/schemas/MailboxBatchGetResult'
            meta:
              $ref: '#/components/schemas/ResponseMeta'
          required:
            - data
          type: object
      unevaluatedProperties: false
    ApiError:
      additionalProperties: false
      properties:
        error:
          additionalProperties: false
          properties:
            code:
              description: Machine-readable error code
              enum:
                - invalid_parameter
                - missing_parameter
                - authentication_required
                - insufficient_permissions
                - not_found
                - conflict
                - limit_exceeded
                - idempotency_conflict
                - payload_too_large
                - validation_error
                - rate_limit_exceeded
                - service_unavailable
                - internal_error
              example: invalid_parameter
              type: string
            doc_url:
              description: Link to relevant documentation
              type: string
            errors:
              description: >-
                Accumulated per-field issues for validation errors. Only present
                on 400/422 responses.
              items:
                $ref: '#/components/schemas/ApiErrorDetail'
              type: array
            message:
              description: Human-readable error description
              type: string
            param:
              description: The parameter that caused the error
              type: string
            retryable:
              description: >-
                Whether the caller may safely retry this request. 4xx are
                typically false (except 429); 5xx are typically true.
              example: false
              type: boolean
          required:
            - code
            - message
            - retryable
          type: object
        meta:
          additionalProperties: false
          properties:
            request_id:
              example: req_clxxxxxxxxxxxxxxxxxxxxxxxxx
              type: string
          required:
            - request_id
          type: object
        ok:
          enum:
            - false
          type: boolean
      required:
        - ok
        - error
        - meta
      type: object
    SuccessEnvelope:
      properties:
        meta:
          additionalProperties: {}
          properties: {}
          type: object
        ok:
          enum:
            - true
          type: boolean
      required:
        - ok
        - meta
      type: object
    MailboxBatchGetResult:
      additionalProperties: false
      properties:
        messages:
          items:
            $ref: '#/components/schemas/MailboxBatchGetItem'
          type: array
        not_found:
          items:
            type: string
          type: array
        states:
          additionalProperties: false
          properties:
            email_state:
              type:
                - string
                - 'null'
          required:
            - email_state
          type: object
      required:
        - messages
        - not_found
        - states
      type: object
    ResponseMeta:
      additionalProperties: false
      properties:
        request_id:
          example: req_clxxxxxxxxxxxxxxxxxxxxxxxxx
          type: string
      required:
        - request_id
      type: object
    ApiErrorDetail:
      additionalProperties: false
      properties:
        code:
          description: >-
            Machine-readable issue code from the validator (e.g. zod issue
            code).
          example: invalid_string
          type: string
        field:
          description: Dot-path of the offending request field.
          example: recipient.email
          type: string
        message:
          description: Human-readable issue description.
          type: string
      required:
        - field
        - code
        - message
      type: object
    MailboxBatchGetItem:
      additionalProperties: false
      properties:
        content:
          $ref: '#/components/schemas/MailboxMessageContent'
        message:
          $ref: '#/components/schemas/MailboxMessageSummary'
        raw_body:
          $ref: '#/components/schemas/MailboxRawBody'
      required:
        - message
        - raw_body
        - content
      type: object
    MailboxMessageContent:
      additionalProperties: false
      properties:
        attachments:
          description: >-
            Attachment metadata only. Attachment contents are not parsed by this
            endpoint.
          items:
            $ref: '#/components/schemas/MailboxAttachment'
          type: array
        body:
          additionalProperties: false
          properties:
            extracted_links:
              items:
                type: string
              type: array
            format:
              enum:
                - text
                - html
              type:
                - string
                - 'null'
            html:
              description: >-
                HTML body when requested. Returned as a JSON string and not as
                rendered content.
              type:
                - string
                - 'null'
            is_truncated:
              type: boolean
            quotes_stripped:
              type: boolean
            signature_stripped:
              type: boolean
            text:
              type:
                - string
                - 'null'
            truncated_at_chars:
              type:
                - integer
                - 'null'
          required:
            - format
            - text
            - html
            - is_truncated
            - truncated_at_chars
            - signature_stripped
            - quotes_stripped
            - extracted_links
          type: object
        dates:
          additionalProperties: false
          properties:
            received_at:
              type:
                - string
                - 'null'
            sent_at:
              type:
                - string
                - 'null'
          required:
            - received_at
            - sent_at
          type: object
        headers:
          $ref: '#/components/schemas/MailboxContentHeaders'
        id:
          description: Message ID
          type: string
        participants:
          additionalProperties: false
          properties:
            bcc:
              items:
                $ref: '#/components/schemas/MailboxAddress'
              type: array
            cc:
              items:
                $ref: '#/components/schemas/MailboxAddress'
              type: array
            from:
              allOf:
                - $ref: '#/components/schemas/MailboxAddress'
                - type:
                    - object
                    - 'null'
            reply_to:
              items:
                $ref: '#/components/schemas/MailboxAddress'
              type: array
            to:
              items:
                $ref: '#/components/schemas/MailboxAddress'
              type: array
          required:
            - from
            - to
            - cc
            - bcc
            - reply_to
          type: object
        states:
          additionalProperties: false
          properties:
            email_state:
              type:
                - string
                - 'null'
            option_hash:
              type: string
          required:
            - email_state
            - option_hash
          type: object
        subject:
          type:
            - string
            - 'null'
        thread_id:
          type:
            - string
            - 'null'
      required:
        - id
        - thread_id
        - subject
        - participants
        - dates
        - body
        - headers
        - attachments
        - states
      type:
        - object
        - 'null'
    MailboxMessageSummary:
      additionalProperties: false
      properties:
        attachments:
          description: >-
            Attachment metadata for this message. Each item includes a
            short-lived `download_url`; if it expires, fetch message metadata
            again.
          items:
            $ref: '#/components/schemas/MailboxAttachment'
          type: array
        bcc:
          items:
            $ref: '#/components/schemas/MailboxAddress'
          type: array
        cc:
          items:
            $ref: '#/components/schemas/MailboxAddress'
          type: array
        flags:
          $ref: '#/components/schemas/MailboxMessageFlags'
        folder_ids:
          items:
            type: string
          type: array
        from:
          allOf:
            - $ref: '#/components/schemas/MailboxAddress'
            - type:
                - object
                - 'null'
        has_attachments:
          type: boolean
        id:
          description: Message ID
          type: string
        keywords:
          description: Active message keywords, including system flags and custom labels.
          example:
            - $seen
            - $flagged
            - agent_triaged
          items:
            type: string
          type: array
        preview:
          type:
            - string
            - 'null'
        received_at:
          type:
            - string
            - 'null'
        sent_at:
          type:
            - string
            - 'null'
        size_bytes:
          type:
            - integer
            - 'null'
        subject:
          type:
            - string
            - 'null'
        thread_id:
          type:
            - string
            - 'null'
        to:
          items:
            $ref: '#/components/schemas/MailboxAddress'
          type: array
      required:
        - id
        - thread_id
        - folder_ids
        - subject
        - preview
        - from
        - to
        - cc
        - bcc
        - received_at
        - sent_at
        - size_bytes
        - has_attachments
        - keywords
        - flags
      type: object
    MailboxRawBody:
      additionalProperties: false
      properties:
        body:
          additionalProperties: false
          properties:
            html:
              type:
                - string
                - 'null'
            is_truncated:
              type: boolean
            text:
              type:
                - string
                - 'null'
            truncated_at_chars:
              type:
                - integer
                - 'null'
          required:
            - text
            - html
            - is_truncated
            - truncated_at_chars
          type: object
        id:
          description: Message ID
          type: string
        part:
          enum:
            - text
            - html
            - both
          type: string
        states:
          additionalProperties: false
          properties:
            email_state:
              type:
                - string
                - 'null'
          required:
            - email_state
          type: object
        thread_id:
          type:
            - string
            - 'null'
      required:
        - id
        - thread_id
        - part
        - body
        - states
      type:
        - object
        - 'null'
    MailboxAttachment:
      additionalProperties: false
      properties:
        content_id:
          description: Content ID for inline attachments, when present.
          type:
            - string
            - 'null'
        content_type:
          example: application/pdf
          type: string
        disposition:
          example: attachment
          type:
            - string
            - 'null'
        download_url:
          description: >-
            Short-lived URL for this exact attachment. Fetch it promptly; if it
            expires, call the message or attachment metadata endpoint again to
            receive a fresh URL.
          example: >-
            https://app.sendmux.ai/api/v1/mailbox/messages/msg_123/attachment-downloads/attref_abc123?download_token=...
          type: string
        filename:
          example: invoice.pdf
          type:
            - string
            - 'null'
        id:
          description: Attachment blob ID.
          type: string
        size_bytes:
          example: 12345
          type:
            - integer
            - 'null'
      required:
        - id
        - filename
        - content_type
        - size_bytes
        - disposition
        - content_id
      type: object
    MailboxContentHeaders:
      additionalProperties: false
      properties:
        full:
          items:
            additionalProperties: false
            properties:
              name:
                type: string
              value:
                type: string
            required:
              - name
              - value
            type: object
          type:
            - array
            - 'null'
        mode:
          enum:
            - none
            - selected
            - full
          type: string
        selected:
          properties:
            in_reply_to:
              type:
                - string
                - 'null'
            message_id:
              items:
                type: string
              type: array
            references:
              items:
                type: string
              type: array
            reply_to:
              items:
                $ref: '#/components/schemas/MailboxAddress'
              type: array
          required:
            - message_id
            - in_reply_to
            - references
            - reply_to
          type:
            - object
            - 'null'
      required:
        - mode
        - selected
        - full
      type: object
    MailboxAddress:
      additionalProperties: false
      properties:
        email:
          example: agent@example.com
          format: email
          type: string
        name:
          example: Support
          type:
            - string
            - 'null'
      required:
        - email
        - name
      type: object
    MailboxMessageFlags:
      additionalProperties: false
      properties:
        answered:
          type: boolean
        draft:
          type: boolean
        flagged:
          type: boolean
        seen:
          type: boolean
      required:
        - seen
        - flagged
        - draft
        - answered
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: API Key
      description: >-
        Sendmux API key. Use a root API key for Management API routes, or a
        mailbox credential for Mailbox API routes. Obtain keys from the
        dashboard under API Keys.
      scheme: bearer
      type: http

````