---
title: "Create notification channel"
method: POST
path: "/internal/v1/projects/{project_id}/notification-channels"
tags: ["NotificationChannels"]
---

# Create notification channel

`POST /internal/v1/projects/{project_id}/notification-channels`

Create a new notification channel.

## Path parameters

- `project_id` integer, required

## Request body

- NotificationChannelRequest
  - `name` string, required
  - `type` 'slack' | 'google_chat' | 'mattermost' | 'pagerduty' | 'servicenow' | 'opsgenie' | 'telegram' | 'teams' | 'pushover' | 'webhook' | 'alertmanager' | 'incidentio', required
  - `matchAll` boolean
  - `monitorIds` integer[]
  - `condition` string
  - `priorities` string[], required
  - `params` union, required
    - SlackParams — Slack params. When authMethod=webhook, webhookUrl is required. When authMethod=token, token and channel are required.
      - `webhookUrl` string
      - `token` string
      - `channel` string
      - `authMethod` 'webhook' | 'token'
    - GoogleChatParams
      - `webhookUrl` string, required
    - MattermostParams
      - `webhookUrl` string, required
    - PagerdutyParams
      - `routingKey` string, required
      - `severity` 'critical' | 'error' | 'warning' | 'info', required
    - ServicenowParams
      - `url` string, required
      - `username` string, required
      - `password` string, required
      - `category` string
      - `subcategory` string
      - `impact` '1' | '2' | '3'
      - `urgency` '1' | '2' | '3'
      - `severity` '1' | '2' | '3' | '4' | '5'
      - `callerId` string
      - `group` string
      - `assignedTo` string
      - `openedBy` string
      - `notify` '1' | '2'
      - `dueDate` string
    - OpsgenieParams
      - `apiKey` string, required
      - `priority` 'P1' | 'P2' | 'P3' | 'P4' | 'P5', required
    - TelegramParams
      - `chatId` integer, required
    - TeamsParams
      - `webhookUrl` string, required
    - PushoverParams — Pushover notification channel params.
      - `token` string, required
      - `userKey` string, required
      - `priority` integer — Priority from -2 (lowest) to 2 (emergency).
      - `sound` string
    - WebhookParams
      - `url` string, required
      - `payload` object
    - AlertmanagerParams — Alertmanager notification channel params.
      - `url` string, required — Alertmanager API endpoint URL.
      - `authMethod` 'none' | 'basic_auth' | 'bearer' — Authentication method.
      - `username` string — Username for basic_auth.
      - `password` string — Password for basic_auth.
      - `token` string — Token for bearer auth.
    - IncidentioParams — incident.io notification channel params.
      - `url` string, required — Alert Events V2 endpoint URL.
      - `apiKey` string, required — incident.io API key.

## Response `200`

Notification channel created.

- NotificationChannelResponse
  - `channel` NotificationChannel, required
    - `id` integer, required
    - `projectId` integer, required
    - `name` string, required
    - `type` 'slack' | 'google_chat' | 'mattermost' | 'pagerduty' | 'servicenow' | 'opsgenie' | 'telegram' | 'teams' | 'pushover' | 'webhook' | 'alertmanager' | 'incidentio', required
    - `status` 'draft' | 'delivering' | 'paused' | 'disabled', required
    - `error` string
    - `matchAll` boolean
    - `condition` string
    - `priorities` string[]
    - `params` union, required
      - SlackParams — Slack params. When authMethod=webhook, webhookUrl is required. When authMethod=token, token and channel are required.
        - `webhookUrl` string
        - `token` string
        - `channel` string
        - `authMethod` 'webhook' | 'token'
      - GoogleChatParams
        - `webhookUrl` string, required
      - MattermostParams
        - `webhookUrl` string, required
      - PagerdutyParams
        - `routingKey` string, required
        - `severity` 'critical' | 'error' | 'warning' | 'info', required
      - ServicenowParams
        - `url` string, required
        - `username` string, required
        - `password` string, required
        - `category` string
        - `subcategory` string
        - `impact` '1' | '2' | '3'
        - `urgency` '1' | '2' | '3'
        - `severity` '1' | '2' | '3' | '4' | '5'
        - `callerId` string
        - `group` string
        - `assignedTo` string
        - `openedBy` string
        - `notify` '1' | '2'
        - `dueDate` string
      - OpsgenieParams
        - `apiKey` string, required
        - `priority` 'P1' | 'P2' | 'P3' | 'P4' | 'P5', required
      - TelegramParams
        - `chatId` integer, required
      - TeamsParams
        - `webhookUrl` string, required
      - PushoverParams — Pushover notification channel params.
        - `token` string, required
        - `userKey` string, required
        - `priority` integer — Priority from -2 (lowest) to 2 (emergency).
        - `sound` string
      - WebhookParams
        - `url` string, required
        - `payload` object
      - AlertmanagerParams — Alertmanager notification channel params.
        - `url` string, required — Alertmanager API endpoint URL.
        - `authMethod` 'none' | 'basic_auth' | 'bearer' — Authentication method.
        - `username` string — Username for basic_auth.
        - `password` string — Password for basic_auth.
        - `token` string — Token for bearer auth.
      - IncidentioParams — incident.io notification channel params.
        - `url` string, required — Alert Events V2 endpoint URL.
        - `apiKey` string, required — incident.io API key.
    - `monitorIds` integer[]
    - `monitorCount` integer
    - `sentCount` integer
    - `lastSentAt` string, date-time

## Other responses

- `400` — Invalid request
- `401` — Authentication required
- `404` — Resource not found
- `500` — Internal server error

---

[API](https://skmtc.net/uptrace/apis/uptrace-json-api.md) · [All operations](https://skmtc.net/uptrace/apis/uptrace-json-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/uptrace/uptrace-json-api/revisions/550c8881ab9a/schema)
