---
title: "Retrieve an event"
method: GET
path: "/v1/notifications/{notificationId}"
tags: ["Notifications"]
---

# Retrieve an event

`GET /v1/notifications/{notificationId}`

Retrieve an event by its unique key identifier **notificationId**. 
    Here **notificationId** is of mongodbId type. 
    This API returns the event details - execution logs, status, actual notification (message) generated by each workflow step.

## Path parameters

- `notificationId` string, required

## Response `200`

OK

- ActivityNotificationResponseDto
  - `_id` string — Unique identifier of the notification
  - `_environmentId` string, required — Environment ID of the notification
  - `_organizationId` string, required — Organization ID of the notification
  - `_subscriberId` string, required — Subscriber ID of the notification
  - `transactionId` string, required — Transaction ID of the notification
  - `_templateId` string — Template ID of the notification
  - `_digestedNotificationId` string — Digested Notification ID
  - `createdAt` string — Creation time of the notification
  - `updatedAt` string — Last updated time of the notification
  - `channels` StepTypeEnum[]
  - `subscriber` ActivityNotificationSubscriberResponseDto
    - `firstName` string — First name of the subscriber
    - `subscriberId` string, required — External unique identifier of the subscriber
    - `_id` string, required — Internal to Novu unique identifier of the subscriber
    - `lastName` string — Last name of the subscriber
    - `email` string — Email address of the subscriber
    - `phone` string — Phone number of the subscriber
  - `template` ActivityNotificationTemplateResponseDto
    - `_id` string — Unique identifier of the template
    - `name` string, required — Name of the template
    - `origin` 'novu-cloud' | 'novu-cloud-v1' | 'external' — Origin of the layout
    - `triggers` NotificationTriggerDto[], required — Triggers of the template
      - `type` 'event', required — Type of the trigger
      - `identifier` string, required — Identifier of the trigger
      - `variables` NotificationTriggerVariable[], required — Variables of the trigger
        - `name` string, required — Name of the variable
      - `subscriberVariables` NotificationTriggerVariable[] — Subscriber variables of the trigger
        - `name` string, required — Name of the variable
  - `jobs` ActivityNotificationJobResponseDto[] — Jobs of the notification
    - `_id` string, required — Unique identifier of the job
    - `type` 'in_app' | 'email' | 'sms' | 'chat' | 'push' | 'tool' | 'digest' | 'trigger' | 'delay' | 'throttle' | 'custom' | 'http_request', required — Type of the job
    - `digest` DigestMetadataDto
      - `digestKey` string — Optional key for the digest
      - `amount` number — Amount for the digest
      - `unit` 'seconds' | 'minutes' | 'hours' | 'days' | 'weeks' | 'months' — Unit of the digest
      - `type` 'regular' | 'backoff' | 'timed', required — The Digest Type
      - `events` object[] — Optional array of events associated with the digest, represented as key-value pairs
      - `backoff` boolean — Regular digest: Indicates if backoff is enabled for the regular digest
      - `backoffAmount` number — Regular digest: Amount for backoff
      - `backoffUnit` 'seconds' | 'minutes' | 'hours' | 'days' | 'weeks' | 'months' — Regular digest: Unit for backoff
      - `updateMode` boolean — Regular digest: Indicates if the digest should update
      - `timed` DigestTimedConfigDto
        - `atTime` string — Time at which the digest is triggered
        - `weekDays` string[] — Days of the week for the digest
        - `monthDays` number[] — Specific days of the month for the digest
        - `ordinal` '1' | '2' | '3' | '4' | '5' | 'last' — Ordinal position for the digest
        - `ordinalValue` 'day' | 'weekday' | 'weekend' | 'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' — Value of the ordinal
        - `monthlyType` 'each' | 'on' — Type of monthly schedule
        - `cronExpression` string — Cron expression for scheduling
        - `untilDate` string — Until date for scheduling
    - `executionDetails` ActivityNotificationExecutionDetailResponseDto[], required — Execution details of the job
      - `_id` string, required — Unique identifier of the execution detail
      - `createdAt` string — Creation time of the execution detail
      - `status` 'Success' | 'Warning' | 'Failed' | 'Pending' | 'Queued' | 'ReadConfirmation', required — Status of the execution detail
      - `detail` string, required — Detailed information about the execution
      - `isRetry` boolean, required — Whether the execution is a retry or not
      - `isTest` boolean, required — Whether the execution is a test or not
      - `providerId` 'anypost' | 'emailjs' | 'mailgun' | 'mailjet' | 'mandrill' | 'nodemailer' | 'postmark' | 'sendgrid' | 'sendinblue' | 'ses' | 'netcore' | 'infobip-email' | 'resend' | 'plunk' | 'mailersend' | 'mailtrap' | 'clickatell' | 'outlook365' | 'novu-email' | 'sparkpost' | 'email-webhook' | 'braze' | 'novu-email-agent' | 'nexmo' | 'plivo' | 'sms77' | 'sms-central' | 'sns' | 'telnyx' | 'twilio' | 'gupshup' | 'firetext' | 'infobip-sms' | 'burst-sms' | 'bulk-sms' | 'isend-sms' | 'forty-six-elks' | 'kannel' | 'maqsam' | 'termii' | 'africas-talking' | 'novu-sms' | 'sendchamp' | 'generic-sms' | 'clicksend' | 'bandwidth' | 'messagebird' | 'simpletexting' | 'azure-sms' | 'ring-central' | 'brevo-sms' | 'eazy-sms' | 'mobishastra' | 'afro-message' | 'unifonic' | 'smsmode' | 'imedia' | 'sinch' | 'isendpro-sms' | 'cm-telecom' | 'ruach-sms' | 'fcm' | 'apns' | 'expo' | 'one-signal' | 'pushpad' | 'push-webhook' | 'pusher-beams' | 'appio' | 'novu' | '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' | 'anthropic' | 'novu-anthropic' | 'anthropic-aws' | 'pagerduty' | 'opsgenie' | 'grafana' | 'tool-webhook' — Provider ID of the job
      - `raw` string, nullable — Raw data of the execution
      - `source` 'Credentials' | 'Internal' | 'Payload' | 'Webhook', required — Source of the execution detail
    - `step` ActivityNotificationStepResponseDto, required
      - `_id` string, required — Unique identifier of the step
      - `active` boolean, required — Whether the step is active or not
      - `replyCallback` object — Reply callback settings
      - `controlVariables` object — Control variables
      - `metadata` object — Metadata for the workflow step
      - `issues` object — Step issues
      - `filters` StepFilterDto[], required — Filter criteria for the 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
      - `template` MessageTemplateDto
      - `variants` ActivityNotificationStepResponseDto[] — Variants of the step
      - `_templateId` string, required — The identifier for the template associated with this step
      - `name` string — The name of the step
      - `_parentId` string, nullable — The unique identifier for the parent step
    - `overrides` object — Optional context object for additional error details.
    - `payload` object — Optional payload for the job
    - `providerId` 'anypost' | 'emailjs' | 'mailgun' | 'mailjet' | 'mandrill' | 'nodemailer' | 'postmark' | 'sendgrid' | 'sendinblue' | 'ses' | 'netcore' | 'infobip-email' | 'resend' | 'plunk' | 'mailersend' | 'mailtrap' | 'clickatell' | 'outlook365' | 'novu-email' | 'sparkpost' | 'email-webhook' | 'braze' | 'novu-email-agent' | 'nexmo' | 'plivo' | 'sms77' | 'sms-central' | 'sns' | 'telnyx' | 'twilio' | 'gupshup' | 'firetext' | 'infobip-sms' | 'burst-sms' | 'bulk-sms' | 'isend-sms' | 'forty-six-elks' | 'kannel' | 'maqsam' | 'termii' | 'africas-talking' | 'novu-sms' | 'sendchamp' | 'generic-sms' | 'clicksend' | 'bandwidth' | 'messagebird' | 'simpletexting' | 'azure-sms' | 'ring-central' | 'brevo-sms' | 'eazy-sms' | 'mobishastra' | 'afro-message' | 'unifonic' | 'smsmode' | 'imedia' | 'sinch' | 'isendpro-sms' | 'cm-telecom' | 'ruach-sms' | 'fcm' | 'apns' | 'expo' | 'one-signal' | 'pushpad' | 'push-webhook' | 'pusher-beams' | 'appio' | 'novu' | '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' | 'anthropic' | 'novu-anthropic' | 'anthropic-aws' | 'pagerduty' | 'opsgenie' | 'grafana' | 'tool-webhook', required — Provider ID of the job
    - `status` string, required — Status of the job
    - `updatedAt` string — Updated time of the notification
    - `scheduleExtensionsCount` number — The number of times the digest/delay job has been extended to align with the subscribers schedule
  - `payload` object — Payload of the notification
  - `tags` string[] — Tags associated with the notification
  - `controls` object — Controls associated with the notification
  - `to` object — To field for subscriber definition
  - `topics` ActivityTopicDto[] — Topics of the notification
    - `_topicId` string, required — Internal Topic ID of the notification
    - `topicKey` string, required — Topic Key of the notification
  - `severity` 'high' | 'medium' | 'low' | 'none' — Severity of the workflow
  - `critical` boolean — Criticality of the notification
  - `contextKeys` string[] — Context (single or multi) in which the notification was sent

## 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/versions/986fe259fa85/schema)
