---
title: "Create a notification channel"
method: POST
path: "/notifications"
tags: ["notifications"]
---

# Create a notification channel

`POST /notifications`

Create a notification channel of any supported type. The `type` field discriminates the body shape.

## Request body

- union
  - EmailNotification
    - `notificationName` string, required
    - `type` 'email', required
    - `address` string, email, required
    - `homeserverUrl` union
      - string
      - ''
    - `roomId` union
      - string
      - ''
    - `accessToken` union
      - string
      - ''
  - WebhookNotification
    - `notificationName` string, required
    - `type` 'webhook', required
    - `address` string, uri, required
    - `homeserverUrl` union
      - string
      - ''
    - `roomId` union
      - string
      - ''
    - `accessToken` union
      - string
      - ''
  - RocketChatNotification
    - `notificationName` string, required
    - `type` 'rocket_chat', required
    - `address` string, uri, required
  - SlackNotification
    - `notificationName` string, required
    - `type` 'slack', required
    - `address` string, uri, required
    - `homeserverUrl` union
      - string
      - ''
    - `roomId` union
      - string
      - ''
    - `accessToken` union
      - string
      - ''
  - DiscordNotification
    - `notificationName` string, required
    - `type` 'discord', required
    - `address` string, uri, required
    - `homeserverUrl` union
      - string
      - ''
    - `roomId` union
      - string
      - ''
    - `accessToken` union
      - string
      - ''
  - PagerDutyNotification
    - `notificationName` string, required
    - `type` 'pager_duty', required
    - `address` string, required
    - `homeserverUrl` union
      - string
      - ''
    - `roomId` union
      - string
      - ''
    - `accessToken` union
      - string
      - ''
  - MatrixNotification
    - `notificationName` string, required
    - `type` 'matrix', required
    - `address` union
      - string
      - ''
    - `homeserverUrl` string, uri, required
    - `roomId` string, required
    - `accessToken` string, required
  - TeamsNotification
    - `notificationName` string, required
    - `type` 'teams', required
    - `address` string, uri, required
  - TelegramNotification
    - `notificationName` string, required
    - `type` 'telegram', required
    - `address` string, required
    - `accessToken` string, required
  - PushoverNotification
    - `notificationName` string, required
    - `type` 'pushover', required
    - `address` string, required
    - `accessToken` string, required
  - TwilioNotification
    - `notificationName` string, required
    - `type` 'twilio', required
    - `accountSid` string, required
    - `accessToken` string, required
    - `phone` string, required
    - `twilioPhoneNumber` string, required
  - NtfyNotification
    - `notificationName` string, required
    - `type` 'ntfy', required
    - `address` string, uri, required
    - `topic` string, required
    - `ntfyAuthType` 'none' | 'token' | 'basic'
    - `ntfyUsername` union
      - string
      - ''
    - `accessToken` union
      - string
      - ''

## Response `200`

OK

- object
  - `success` true, required
  - `msg` string, required
  - `data` unknown

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `500` — Internal server error

## Changes

- **2026-08-18** `f0f3ae56f5c5` — 3 info
  - added the new optional request property `oneOf[#/components/schemas/NtfyNotification]/accessToken`
  - added the new optional request property `oneOf[#/components/schemas/NtfyNotification]/ntfyAuthType`
  - added the new optional request property `oneOf[#/components/schemas/NtfyNotification]/ntfyUsername`
- **2026-08-02** `eae6c896648e` — 2 info
  - added `rocket_chat` mapping keys to the request discriminator
  - added `#/components/schemas/RocketChatNotification` to the request body `oneOf` list
- **2026-05-27** `dd1708803c7c` — 2 info
  - added `ntfy` mapping keys to the request discriminator
  - added `#/components/schemas/NtfyNotification` to the request body `oneOf` list
- **2026-05-01** `39082d385dda` — 2 breaking, 6 warning, 8 info
  - the request's body type/format changed from `object`/`` to ``/``
  - removed the success response with the status `201`
  - removed the request property `config`
  - removed the request property `isActive`
  - …12 more
- **2025-08-11** `db719f9e3d34` — 1 info
  - endpoint added

[Full history](https://skmtc.dev/bluewave-labs/apis/checkmate-api/changes/notifications/post.md)

---

[API](https://skmtc.dev/bluewave-labs/apis/checkmate-api.md) · [All operations](https://skmtc.dev/bluewave-labs/apis/checkmate-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/bluewave-labs/checkmate-api/revisions/a9ac59e12c59/schema)
