---
title: "List all messages"
method: GET
path: "/v1/messages"
tags: ["Messages"]
---

# List all messages

`GET /v1/messages`

List all messages for the current environment. 
    This API supports filtering by **channel**, **subscriberId**, and **transactionId**. 
    This API returns a paginated list of messages.

## Query parameters

- `channel` 'in_app' | 'email' | 'sms' | 'chat' | 'push' | 'tool' — Channel type through which the message is sent
- `subscriberId` string
- `transactionId` string[]
- `contextKeys` string[]
- `page` number
- `limit` number

## Response `200`

- MessagesResponseDto
  - `totalCount` number — Total number of messages available
  - `hasMore` boolean, required — Indicates if there are more messages available
  - `data` MessageResponseDto[], required — List of messages
    - `_id` string — Unique identifier for the message
    - `_templateId` string, nullable — Template ID associated with the message
    - `_environmentId` string, required — Environment ID where the message is sent
    - `_messageTemplateId` string, nullable — Message template ID
    - `_organizationId` string, required — Organization ID associated with the message
    - `_notificationId` string, required — Notification ID associated with the message
    - `_subscriberId` string, required — Subscriber ID associated with the message
    - `subscriber` SubscriberResponseDto
      - `_id` string — The internal ID generated by Novu for your subscriber. This ID does not match the `subscriberId` used in your queries. Refer to `subscriberId` for that identifier.
      - `firstName` string, nullable — The first name of the subscriber.
      - `lastName` string, nullable — The last name of the subscriber.
      - `email` string, nullable — The email address of the subscriber.
      - `phone` string, nullable — The phone number of the subscriber.
      - `avatar` string, nullable — The URL of the subscriber's avatar image.
      - `locale` string, nullable — The locale setting of the subscriber, indicating their preferred language or region.
      - `channels` ChannelSettingsDto[] — An array of channel settings associated with the subscriber.
        - `providerId` 'slack' | 'discord' | 'msteams' | 'webex-messaging' | 'mattermost' | 'ryver' | 'zulip' | 'grafana-on-call' | 'getstream' | 'rocket-chat' | 'whatsapp-business' | 'line' | 'chat-webhook' | 'novu-slack' | 'telegram' | 'sendblue' | 'novu-web-chat' | 'fcm' | 'apns' | 'expo' | 'one-signal' | 'pushpad' | 'push-webhook' | 'pusher-beams' | 'appio', required — The provider identifier for the credentials
        - `integrationIdentifier` string — The integration identifier
        - `credentials` ChannelCredentials, required
          - `webhookUrl` string — Webhook URL used by chat app integrations. The webhook should be obtained from the chat app provider.
          - `channel` string — Channel specification for Mattermost chat notifications.
          - `deviceTokens` string[] — Contains an array of the subscriber device tokens for a given provider. Used on Push integrations.
          - `alertUid` string — Alert UID for Grafana on-call webhook payload.
          - `title` string — Title to be used with Grafana on-call webhook.
          - `imageUrl` string — Image URL property for Grafana on-call webhook.
          - `state` string — State property for Grafana on-call webhook.
          - `externalUrl` string — Link to upstream details property for Grafana on-call webhook.
        - `_integrationId` string, required — The unique identifier of the integration associated with this channel.
      - `topics` string[] — An array of topics that the subscriber is subscribed to.
      - `isOnline` boolean, nullable — Indicates whether the subscriber is currently online.
      - `lastOnlineAt` string, nullable — The timestamp indicating when the subscriber was last online, in ISO 8601 format.
      - `__v` number — The version of the subscriber document.
      - `data` object, nullable — Additional custom data for the subscriber
      - `timezone` string, nullable — Timezone of the subscriber
      - `subscriberId` string, required — The identifier used to create this subscriber, which typically corresponds to the user ID in your system.
      - `_organizationId` string, required — The unique identifier of the organization to which the subscriber belongs.
      - `_environmentId` string, required — The unique identifier of the environment associated with this subscriber.
      - `deleted` boolean, required — Indicates whether the subscriber has been deleted.
      - `createdAt` string, required — The timestamp indicating when the subscriber was created, in ISO 8601 format.
      - `updatedAt` string, required — The timestamp indicating when the subscriber was last updated, in ISO 8601 format.
    - `template` WorkflowResponse
      - `_id` string
      - `name` string, required
      - `description` string, required
      - `active` boolean, required
      - `draft` boolean, required
      - `preferenceSettings` SubscriberPreferenceChannels, required
        - `email` boolean — Email channel preference
        - `sms` boolean — SMS channel preference
        - `in_app` boolean — In-app channel preference
        - `chat` boolean — Chat channel preference
        - `push` boolean — Push notification channel preference
        - `tool` boolean — Tool channel preference
      - `critical` boolean, required
      - `tags` string[], required
      - `steps` NotificationStepDto[], required
        - `_id` string — Unique identifier for the notification step.
        - `uuid` string — Universally unique identifier for the notification step.
        - `name` string — Name of the notification step.
        - `_templateId` string — ID of the template associated with this notification step.
        - `active` boolean — Indicates whether the notification step is active.
        - `shouldStopOnFail` boolean — Determines if the process should stop on failure.
        - `template` MessageTemplate
        - `filters` StepFilterDto[] — Filters applied to this notification step.
          - `isNegated` boolean, required
          - `type` 'BOOLEAN' | 'TEXT' | 'DATE' | 'NUMBER' | 'STATEMENT' | 'LIST' | 'MULTI_LIST' | 'GROUP', required
          - `value` 'AND' | 'OR', required
          - `children` FieldFilterPartDto[], required
            - `field` string, required
            - `value` string, required
            - `operator` 'LARGER' | 'SMALLER' | 'LARGER_EQUAL' | 'SMALLER_EQUAL' | 'EQUAL' | 'NOT_EQUAL' | 'ALL_IN' | 'ANY_IN' | 'NOT_IN' | 'BETWEEN' | 'NOT_BETWEEN' | 'LIKE' | 'NOT_LIKE' | 'IN', required
            - `on` 'subscriber' | 'payload', required
        - `_parentId` string — ID of the parent notification step, if applicable.
        - `metadata` union — Metadata associated with the workflow step. Can vary based on the type of step.
          - DigestRegularMetadata
            - `amount` number
            - `unit` 'seconds' | 'minutes' | 'hours' | 'days' | 'weeks' | 'months'
            - `digestKey` string
            - `type` 'regular' | 'backoff', required
            - `backoff` boolean
            - `backoffAmount` number
            - `backoffUnit` 'seconds' | 'minutes' | 'hours' | 'days' | 'weeks' | 'months'
            - `updateMode` boolean
          - DigestTimedMetadata
            - `amount` number
            - `unit` 'seconds' | 'minutes' | 'hours' | 'days' | 'weeks' | 'months'
            - `digestKey` string
            - `type` 'timed', required
            - `timed` TimedConfig
              - …
          - DelayRegularMetadata
            - `amount` number
            - `unit` 'seconds' | 'minutes' | 'hours' | 'days' | 'weeks' | 'months'
            - `type` 'regular', required
          - DelayScheduledMetadata
            - `type` 'scheduled', required
            - `delayPath` string, required
        - `replyCallback` ReplyCallback
          - `active` boolean — Indicates whether the reply callback is active.
          - `url` string — The URL to which replies should be sent.
        - `variants` NotificationStepData[]
          - `_id` string — Unique identifier for the notification step.
          - `uuid` string — Universally unique identifier for the notification step.
          - `name` string — Name of the notification step.
          - `_templateId` string — ID of the template associated with this notification step.
          - `active` boolean — Indicates whether the notification step is active.
          - `shouldStopOnFail` boolean — Determines if the process should stop on failure.
          - `template` MessageTemplate
          - `filters` StepFilterDto[] — Filters applied to this notification step.
            - `isNegated` boolean, required
            - `type` 'BOOLEAN' | 'TEXT' | 'DATE' | 'NUMBER' | 'STATEMENT' | 'LIST' | 'MULTI_LIST' | 'GROUP', required
            - `value` 'AND' | 'OR', required
            - `children` FieldFilterPartDto[], required
              - …
          - `_parentId` string — ID of the parent notification step, if applicable.
          - `metadata` union — Metadata associated with the workflow step. Can vary based on the type of step.
            - DigestRegularMetadata
              - …
            - DigestTimedMetadata
              - …
            - DelayRegularMetadata
              - …
            - DelayScheduledMetadata
              - …
          - `replyCallback` ReplyCallback
            - `active` boolean — Indicates whether the reply callback is active.
            - `url` string — The URL to which replies should be sent.
      - `_organizationId` string, required
      - `_creatorId` string, required
      - `_environmentId` string, required
      - `triggers` NotificationTrigger[], required
        - `type` 'event', required
        - `identifier` string, required
        - `variables` NotificationTriggerVariable[], required
          - `name` string, required — Name of the variable
        - `subscriberVariables` NotificationTriggerVariable[]
          - `name` string, required — Name of the variable
      - `_notificationGroupId` string, required
      - `_parentId` string
      - `deleted` boolean, required
      - `deletedAt` string, required
      - `deletedBy` string, required
      - `notificationGroup` NotificationGroup
        - `_id` string
        - `name` string, required
        - `_environmentId` string, required
        - `_organizationId` string, required
        - `_parentId` string
      - `data` object
      - `workflowIntegrationStatus` object
    - `templateIdentifier` string — Identifier for the message template
    - `createdAt` string, required — Creation date of the message
    - `deliveredAt` string[] — Array of delivery dates for the message, if the message has multiple delivery dates, for example after being snoozed
    - `lastSeenDate` string — Last seen date of the message, if available
    - `lastReadDate` string — Last read date of the message, if available
    - `content` union — Content of the message, can be an email block or a string
      - EmailBlock[]
        - `type` 'button' | 'text', required — Type of the email block
        - `content` string, required — Content of the email block
        - `url` string — URL associated with the email block, if any
        - `styles` EmailBlockStyles
          - `textAlign` 'center' | 'left' | 'right', required — Text alignment for the email block
      - string — String representation of the content
    - `transactionId` string, required — Transaction ID associated with the message
    - `subject` string — Subject of the message, if applicable
    - `channel` 'in_app' | 'email' | 'sms' | 'chat' | 'push' | 'tool', required — Channel type through which the message is sent
    - `read` boolean, required — Indicates if the message has been read
    - `seen` boolean, required — Indicates if the message has been seen
    - `snoozedUntil` string — Date when the message will be unsnoozed
    - `email` string — Email address associated with the message, if applicable
    - `phone` string — Phone number associated with the message, if applicable
    - `directWebhookUrl` string — Direct webhook URL for the message, if applicable
    - `providerId` string — Provider ID associated with the message, if applicable
    - `deviceTokens` string[] — Device tokens associated with the message, if applicable
    - `title` string — Title of the message, if applicable
    - `cta` MessageCTA, required
      - `type` 'redirect' — Type of call to action
      - `data` MessageCTAData
        - `url` string — URL for the call to action
      - `action` MessageAction
        - `status` 'pending' | 'done' — Status of the message action
        - `buttons` MessageButton[] — List of buttons associated with the message action
          - `type` 'primary' | 'secondary', required — Type of button for the action result
          - `content` string, required — Content of the button
          - `resultContent` string — Content of the result when the button is clicked
        - `result` MessageActionResult
          - `payload` object — Payload of the action result
          - `type` 'primary' | 'secondary' — Type of button for the action result
    - `_feedId` string, nullable — Feed ID associated with the message, if applicable
    - `status` 'sent' | 'error' | 'warning', required — Status of the message
    - `errorId` string — Error ID if the message has an error
    - `errorText` string — Error text if the message has an error
    - `payload` object — The payload that was used to send the notification trigger
    - `overrides` object — Provider specific overrides used when triggering the notification
    - `contextKeys` string[] — Context (single or multi) in which the message was sent
  - `pageSize` number, required — Number of messages per page
  - `page` number, required — Current page number

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `405` — Method Not Allowed
- `409` — Conflict
- `413` — Payload Too Large
- `414` — URI Too Long
- `415` — Unsupported Media Type
- `422` — Unprocessable Entity
- `429` — The client has sent too many requests in a given amount of time.
- `500` — Internal Server Error
- `503` — The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.

---

[API](https://skmtc.net/novu/apis/deprecated-novu-api-use-openapi-json-yaml-instead.md) · [All operations](https://skmtc.net/novu/apis/deprecated-novu-api-use-openapi-json-yaml-instead/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/novu/deprecated-novu-api-use-openapi-json-yaml-instead/revisions/986fe259fa85/schema)
