---
title: "Create a notification. Roles: admin, group member."
method: POST
path: "/api/notifications"
tags: ["Messaging"]
---

# Create a notification. Roles: admin, group member.

`POST /api/notifications`

## Request body

- NotificationCreateRequest
  - `subject` string, required
  - `bodyHtml` string, required
  - `bodyText` string
  - `previewText` string
  - `triggerTime` string, date-time, required
  - `replyToEmail` string
  - `senderName` string
  - `imageUuid` string, uuid
  - `linkLabel` string
  - `linkUrl` string
  - `eventNonRegistrantsIncluded` boolean, required
  - `sendEmail` boolean, required
  - `sendPush` boolean, required
  - `sendSms` boolean, required
  - `membershipId` integer, required
  - `typeCode` 'EVENT' | 'GROUP' | 'MEMBER' | 'ORG', required
  - `groupId` integer
  - `groupRoleId` integer
  - `memberId` integer
  - `audience` AudienceIdRequest
    - `audienceId` integer, required
  - `eventId` integer
  - `messagingListId` integer

## Response `200`

OK

- NotificationResponseNotificationFull
  - `success` boolean
  - `error` string
  - `notification` NotificationFull
    - `audit` Audit
      - `createdTime` string, date-time
      - `modifiedTime` string, date-time
      - `modifiedBy` string
    - `notificationId` integer
    - `membershipId` integer
    - `typeCode` 'EVENT' | 'GROUP' | 'MEMBER' | 'ORG'
    - `bodyHtml` string
    - `bodyText` string
    - `notificationStatusId` integer
    - `subject` string
    - `previewText` string
    - `replyToEmail` string
    - `senderName` string
    - `imageUuid` string, uuid
    - `linkLabel` string
    - `linkUrl` string
    - `triggerTime` string, date-time
    - `targetTime` string, date-time
    - `eventNonRegistrantsIncluded` boolean
    - `audience` AudienceCore
      - `audit` Audit
        - `createdTime` string, date-time
        - `modifiedTime` string, date-time
        - `modifiedBy` string
      - `audienceId` integer
      - `membershipId` integer
      - `name` string
      - `criterionType` 'COMPOUND' | 'COURSE' | 'GROUP' | 'IDENTITY_PROVIDER' | 'PROFILE_QUESTION' | 'PROGRAM'
      - `criterionOperator` 'AND' | 'OR' | 'EQUALS' | 'NOT_EQUALS'
      - `criterionValue` string
      - `invalidTime` string, date-time
      - `groupDescendantsIncluded` boolean
      - `idpPluginId` integer
    - `group` GroupCore
      - `audit` Audit
        - `createdTime` string, date-time
        - `modifiedTime` string, date-time
        - `modifiedBy` string
      - `groupId` integer
      - `groupType` GroupTypeCore
        - `audit` Audit
          - `createdTime` string, date-time
          - `modifiedTime` string, date-time
          - `modifiedBy` string
        - `groupTypeId` integer
        - `membershipId` integer
        - `name` string
        - `namePlural` string
        - `description` string
        - `properties` GroupTypeProperties
          - `announcementsHtml` string
          - `chatEnabled` boolean
          - `chatDefaultEnabled` boolean
          - `contactSharingDefaultEnabled` boolean
          - `postsEnabled` boolean
          - `postsDefaultEnabled` boolean
        - `root` boolean
        - `external` boolean
        - `isPrivate` boolean
      - `membershipId` integer
      - `name` string
      - `properties` GroupProperties
        - `chatEnabled` boolean
        - `postsEnabled` boolean
      - `nodeActive` boolean
      - `ancestryActive` boolean
      - `active` boolean
      - `root` boolean
      - `external` boolean
      - `externalReferenceId` string
    - `groupRole` GroupRoleCore
      - `audit` Audit
        - `createdTime` string, date-time
        - `modifiedTime` string, date-time
        - `modifiedBy` string
      - `groupRoleId` integer
      - `name` string
      - `namePlural` string
      - `external` boolean
      - `selfRegistrationAccessCode` 'CLOSED' | 'GROUP_MEMBERS' | 'OPEN'
      - `dependentRegistrationAccessCode` 'CLOSED' | 'GROUP_MEMBERS' | 'OPEN'
      - `invitationsAllowed` boolean
      - `activitySubmissionNotificationsEnabled` boolean
      - `permissions` string[]
    - `event` EventSlim
      - `audit` Audit
        - `createdTime` string, date-time
        - `modifiedTime` string, date-time
        - `modifiedBy` string
      - `alternateLocales` object
        - `empty` boolean
      - `eventId` integer
      - `membershipId` integer
      - `attendanceTypeCode` 'IN_PERSON' | 'VIRTUAL'
      - `registrationTypeCode` 'OPEN' | 'REGISTRATION' | 'REGISTRATION_WITH_RSVP' | 'TICKETED'
      - `eventSeries` EventSeriesFull
        - `audit` Audit
          - `createdTime` string, date-time
          - `modifiedTime` string, date-time
          - `modifiedBy` string
        - `eventSeriesId` integer
        - `period` 'DAILY' | 'WEEKLY'
        - `stepSize` integer
        - `endDate` string, date
        - `endCount` integer
      - `title` string
      - `description` string
      - `body` string
      - `externalBody` string
      - `location` string
      - `startDateTime` string, date-time
      - `endDateTime` string, date-time
      - `registrationOpenDateTime` string, date-time
      - `registrationCloseDateTime` string, date-time
      - `timeZoneId` string
      - `allDay` boolean
      - `credits` number
      - `published` boolean
      - `unlisted` boolean
      - `allowViewRegistrations` boolean
      - `registrationTicketingEnabled` boolean
      - `dependentRegistrationEnabled` boolean
      - `cancelled` boolean
      - `external` boolean
      - `imageUuid` string, uuid
      - `contactLabel` string
      - `contactUrl` string
      - `audienceId` integer
      - `audiencePromo` AudiencePromo
        - `contentId` integer
        - `actionText` string
        - `localizedValues` AudiencePromoLocaleValues
          - `actionText` string
      - `reminder1Minutes` integer
      - `reminder2Minutes` integer
      - `emailRemindersEnabled` boolean
      - `registrationsMax` integer
      - `registrationsMaxWarningThreshold` integer
      - `previewing` boolean
      - `locale` string
    - `member` MemberSlim
      - `userMembershipId` integer
      - `membershipId` integer
      - `username` string
      - `firstName` string
      - `middleName` string
      - `lastName` string
      - `email` string
      - `phone` string
      - `membershipNumber` string
      - `fullName` string
      - `isPrimary` boolean
    - `messagingList` MessagingListCore
      - `audit` Audit
        - `createdTime` string, date-time
        - `modifiedTime` string, date-time
        - `modifiedBy` string
      - `alternateLocales` object
        - `empty` boolean
      - `messagingListId` integer
      - `membershipId` integer
      - `name` string
      - `prompt` string
      - `description` string
      - `optOut` boolean
      - `active` boolean
      - `emailAllowed` boolean
      - `pushAllowed` boolean
      - `smsAllowed` boolean
      - `groupDescendantsIncluded` boolean
      - `locale` string
    - `recipientCount` integer
    - `readCount` integer
    - `pushSuccessCount` integer
    - `pushFailureCount` integer
    - `message` string
    - `sendEmail` boolean
    - `sendPush` boolean
    - `sendSms` boolean

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found
- `500` — Internal server error

## Changes

- **2026-09-02** `870f28ba2607` — 5 info
  - added the optional property `error/errorId` to the response with the `400` status
  - added the optional property `error/errorId` to the response with the `401` status
  - added the optional property `error/errorId` to the response with the `403` status
  - added the optional property `error/errorId` to the response with the `404` status
  - …1 more

[Change history](https://skmtc.dev/mobilecoach/apis/untitled-api/changes/api/notifications/post.md)

---

[API](https://skmtc.dev/mobilecoach/apis/untitled-api.md) · [All operations](https://skmtc.dev/mobilecoach/apis/untitled-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/mobilecoach/untitled-api/revisions/870f28ba2607/schema)
