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

# View Archived Message

> You can use this API to store any communication sent to customers for later access.


#### Rate Limit

The rate limit for this endpoint is **1000 RPM**.


## OpenAPI

````yaml /api/message-archival/message-archival.yaml post /archival/view
openapi: 3.0.3
info:
  title: MoEngage Message Archival API
  description: >
    This API allows you to store and access any communication sent to customers
    for later access. 


    For more information, refer to [Message
    Archival](/user-guide/campaigns-and-channels/campaign-management-and-reports/message-archival/message-archival).
  version: '1.0'
servers:
  - url: https://api-{dc}.moengage.com/v1
    description: MoEngage API Server
    variables:
      dc:
        default: '01'
        description: >-
          The ‘dc’ in the API Endpoint URL refers to the MoEngage Data Center
          (DC). MoEngage hosts each customer in a different DC. You can find
          your DC number and replace the value of ‘dc’ in the URL by referring
          to the DC and API endpoint mapping
          [here](/api/introduction#data-centers). Your MoEngage Data Center (DC)
          can be 01, 02, 03, 04, 05, 06, or 101.
security:
  - basicAuth: []
tags:
  - name: Message Archival
    description: Retrieve archived message content.
paths:
  /archival/view:
    post:
      tags:
        - Message Archival
      summary: View Archived Message
      description: >
        You can use this API to store any communication sent to customers for
        later access.
      operationId: viewArchivedMessage
      parameters:
        - name: MOE-APPKEY
          in: header
          required: true
          schema:
            type: string
          description: >
            This is the Workspace ID of your MoEngage account that must be
            passed with the request. You can find it in the MoEngage dashboard
            at **Settings** > **Account** > **APIs** > **Workspace ID (earlier
            app id)**.
          example: YOUR_WORKSPACE_ID_XXXX
      requestBody:
        description: >-
          The request body contains the parameters required to identify and
          retrieve the message.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ArchivalRequest'
            examples:
              pushAndroidExample:
                summary: Push (Android) Archival Request
                value:
                  user_id: USER_ID_123
                  delivery_type: ONE_TIME
                  campaign_type: General Push Campaign
                  campaign_channel: PUSH
                  sent_epoch_time: 1716915262
                  campaign_id: CAMPAIGN_ID_XYZ
                  event_name: Notification Received Android
                  platform: ANDROID
              smsExample:
                summary: SMS Archival Request
                value:
                  user_id: USER_ID_123
                  delivery_type: ONE_TIME
                  campaign_type: SMS
                  campaign_channel: SMS
                  sent_epoch_time: 1716972486
                  campaign_id: CAMPAIGN_ID_XYZ
                  event_name: SMS Sent
                  platform: SMS
                  event_id: EVENT_ID_ABC
              emailExample:
                summary: Email Archival Request
                value:
                  user_id: USER_ID_123
                  delivery_type: ONE_TIME
                  campaign_type: Email Campaign
                  campaign_channel: EMAIL
                  sent_epoch_time: 1717150294
                  campaign_id: CAMPAIGN_ID_XYZ
                  event_name: Email Sent
                  platform: EMAIL
              pushIosExample:
                summary: Push (iOS) Archival Request
                value:
                  user_id: USER_ID_123
                  delivery_type: ONE_TIME
                  campaign_type: General Push Campaign
                  campaign_channel: PUSH
                  sent_epoch_time: 1717060428
                  campaign_id: CAMPAIGN_ID_XYZ
                  event_name: Notification Sent iOS
                  platform: IOS
              pushWebExample:
                summary: Push (Web) Archival Request
                value:
                  user_id: USER_ID_123
                  delivery_type: ONE_TIME
                  campaign_type: General Push Campaign
                  campaign_channel: PUSH
                  sent_epoch_time: 1717056071
                  campaign_id: CAMPAIGN_ID_XYZ
                  event_name: Notification Received Web
                  platform: WEB
      responses:
        '200':
          $ref: '#/components/responses/Success200'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '429':
          $ref: '#/components/responses/Error429'
        '500':
          $ref: '#/components/responses/Error500'
        '502':
          $ref: '#/components/responses/Error502'
components:
  schemas:
    ArchivalRequest:
      type: object
      required:
        - user_id
        - delivery_type
        - campaign_type
        - campaign_channel
        - sent_epoch_time
        - campaign_id
        - event_name
        - platform
      properties:
        user_id:
          type: string
          description: |
            This field denotes the unique identifier of the user.
        delivery_type:
          type: string
          description: |
            This field denotes the delivery type of the channel.
          enum:
            - ONE_TIME
            - PERIODIC
            - EVENT_TRIGGERED
            - LOCATION_TRIGGERED
            - DEVICE_TRIGGERED
            - API_TRIGGERED
            - BUSINESS_EVENT_TRIGGERED
        campaign_type:
          type: string
          description: >
            This field denotes the campaign type.


            **Supported Values:**

            * **Push:** General Push Campaign, Autotrigger Campaign, Geo-fencing
            Campaign, Business Event Trigger Push Campaign

            * **SMS:** sms, Business Event Trigger SMS Campaign

            * **Email:** Email Campaign, Email Triggers, Business Event Trigger
            Email Campaign

            * **Alerts:** Inform Email, Inform SMS, Inform Push
          enum:
            - General Push Campaign
            - Autotrigger Campaign
            - Geo-fencing Campaign
            - Business Event Trigger Push Campaign
            - sms
            - Business Event Trigger SMS Campaign
            - Email Campaign
            - Email Triggers
            - Business Event Trigger Email Campaign
            - Inform Email
            - Inform SMS
            - Inform Push
        campaign_channel:
          type: string
          description: The campaign channel.
          enum:
            - EMAIL
            - SMS
            - PUSH
            - FLOWS
        sent_epoch_time:
          type: integer
          format: int64
          description: The sent time of the campaign as a Unix epoch timestamp.
          example: 1716972486
        campaign_id:
          type: string
          description: This field denotes the campaign ID.
        event_name:
          type: string
          description: >-
            The name of the event (e.g., 'Email Sent', 'SMS Sent', 'Notification
            Sent iOS').
          enum:
            - Email Sent
            - SMS Sent
            - Notification Sent iOS
            - Notification Received Android
            - Notification Received Web
        platform:
          type: string
          description: The target platform of the campaign.
          enum:
            - IOS
            - ANDROID
            - WEB
            - EMAIL
            - SMS
            - MWEB
        event_id:
          type: string
          description: >
            The event ID. **Required for event-triggered campaigns.**


            * You must pass `moe_event_id` if any event attribute is present for
            campaigns.

            * You must pass `moe_transaction_id` for alerts.
    ArchivalResponseSuccess:
      type: object
      properties:
        status:
          type: boolean
          example: true
        data:
          $ref: '#/components/schemas/ArchivalData'
    ErrorResponse400:
      type: object
      properties:
        status:
          type: boolean
          example: false
        error_message:
          type: string
          example: >-
            This event is unsupported to view message copy. The supported events
            are [...]
    ErrorResponse401:
      type: object
      properties:
        status:
          type: boolean
          example: false
        error:
          type: string
          example: Invalid data key
    ErrorResponse500:
      type: object
      properties:
        title:
          type: string
          example: Server Error
        description:
          type: string
          example: >-
            An unexpected error was encountered while processing this request.
            Please contact MoEngage Team
        code:
          type: string
          example: BiaFuAzn-aefa0b0e-2c88-4106-8d07-0f0c53513e48
    ArchivalData:
      type: object
      properties:
        message_details:
          $ref: '#/components/schemas/MessageDetails'
        message_content:
          $ref: '#/components/schemas/MessageContent'
        backup_content:
          $ref: '#/components/schemas/MessageContent'
        file_info:
          $ref: '#/components/schemas/FileInfo'
    MessageDetails:
      type: object
      properties:
        message_type:
          type: string
          example: campaign
        message_id:
          type: string
          example: 66560c2d2880326031c474a6
        channel:
          type: string
          example: push
        platform:
          type: string
          example: android
        delivery_type:
          type: string
          example: ONE_TIME
        sent_time:
          type: string
          example: Tue, 28 May 2024 22:24:22 IST
        message_to:
          type: string
          example: >-
            cZug38RqRd2-cF30bd2vda:APA91bGEG-OHMiWV3eHd_ohLs8V-yTgDJuQXNV32jO13or-R118OAC65MXdSx5ozYsIiL-RFan_iflQ62XVX7T2BiNqqQQfKd3FitlpbLR7nVBdkFF1yv_s8pqZux-HfThn-ojhpBIWd
        moe_event_id:
          type: string
          nullable: true
          example: null
        service:
          type: object
          properties:
            type:
              type: string
              example: FCM
        template_info:
          type: object
          properties:
            type:
              type: string
              example: Native
            version:
              type: string
              nullable: true
              example: null
            id:
              type: string
              example: stylizedbasic
    MessageContent:
      type: object
      properties:
        title:
          type: string
        summary:
          type: string
          nullable: true
        message:
          type: string
        related_urls:
          type: array
          items:
            type: string
            format: uri
    FileInfo:
      type: object
      properties:
        version:
          type: string
          example: v2
        file_name:
          type: string
          example: 66560c2d2880326031c474a6_pramodseg_1716915262_push_android.json
  responses:
    Success200:
      description: >-
        Success. The server successfully processed the request, but is not
        returning any content.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ArchivalResponseSuccess'
          example:
            status: true
            data:
              message_details:
                message_type: campaign
                message_id: 66560c2d2880326031c474a6
                channel: push
                platform: android
                delivery_type: ONE_TIME
                sent_time: Tue, 28 May 2024 22:24:22 IST
                message_to: >-
                  cZug38RqRd2-cF30bd2vda:APA91bGEG-OHMiWV3eHd_ohLs8V-yTgDJuQXNV32jO13or-R118OAC65MXdSx5ozYsIiL-RFan_iflQ62XVX7T2BiNqqQQfKd3FitlpbLR7nVBdkFF1yv_s8pqZux-HfThn-ojhpBIWd
                moe_event_id: null
                service:
                  type: FCM
                template_info:
                  type: Native
                  version: null
                  id: stylizedbasic
              message_content:
                title: expiry in 1 hour
                summary: expiry in 1 hour
                message: expiry in 1 hour
                related_urls:
                  - >-
                    https://image-staging-ap1.moengage.com/checkfcsgainmoengage/20240527083246095196HE4ELHScreenshotofUploadyourAppDiawiDevelopmentandInhouseAppsWirelessInstallationjpgcheckfcsgainmoengage.jpg
              backup_content:
                title: Stylized Android Template
                summary: null
                message: Sample Stylized Android Template
                related_urls: []
              file_info:
                version: v2
                file_name: >-
                  66560c2d2880326031c474a6_pramodseg_1716915262_push_android.json
    Error400:
      description: >-
        Bad Request. This response is returned when the required parameters are
        missing from the request, or when the provided parameters are invalid,
        or when a template already exists with the same version, name, or id.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse400'
          example:
            status: false
            error_message: >-
              This event is unsupported to view message copy. The supported
              events are ['Email Sent', 'SMS Sent', 'Notification Sent iOS',
              'Notification Received Android', 'Notification Received Web']
    Error401:
      description: >-
        Authentication Failure. This response is returned when the authorization
        parameters are missing in the HTTP Auth Header.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse401'
          example:
            status: false
            error: Invalid data key
    Error429:
      description: >-
        Too Many Requests. A number of headers are returned in case of a
        rate-limit breach.
    Error500:
      description: >-
        Internal Server Error. This response is returned when the system runs
        into an unexpected error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse500'
          example:
            title: Server Error
            description: >-
              An unexpected error was encountered while processing this request.
              Please contact MoEngage Team
            code: BiaFuAzn-aefa0b0e-2c88-4106-8d07-0f0c53513e48
    Error502:
      description: Server Error. Something went wrong on MoEngage.
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: >
        Authentication is done via Basic Auth. This requires a base64-encoded
        string of your credentials in the format 'username:password'.


        - **Username**: Use your MoEngage workspace ID (also known as the App
        ID). You can find it in the MoEngage dashboard at **Settings** >
        **Account** > **APIs** > **Workspace ID (earlier app id)**.

        - **Password**: Use your API Key, which you can find within the **Data**
        tile.


        For more information on authentication and getting your credentials,
        refer
        [here](https://www.moengage.com/docs/api/introduction#getting-your-credentials).

````