---
title: "Update a channel"
method: PATCH
path: "/v1/channels/{id}"
tags: ["Alerts"]
---

# Update a channel

`PATCH /v1/channels/{id}`

## Request

- Base URL: `https://api.rumoro.dev`
- URL: `https://api.rumoro.dev/v1/channels/{id}`
- Auth: HTTP bearer

Changes a channel's label and account events, and a webhook's URL and headers. `headers` and `events` replace the old values.

## Path parameters

- `id` string, required: The channel's id (dest_...).

## Request body

- object: Fields you leave out stay as they are.
  - `label` string
  - `url` string, uri: For webhook channels only.
  - `headers` object: For webhook channels only. Sets the full new set of headers.
  - `events` string[]: Sets the full list of account events the channel gets. A webhook can take any of them. Slack, email and Telegram channels take only the attention events (mention.spike, sentiment.negative_spike, keyword.noisy, channel.failing). An empty list turns them all off.

## Response `200`

The channel after the change

- union
  - SlackChannel
    - `id` string, required: The channel's id (dest_...).
    - `label` string, required
    - `stats` object, required: Counted from this workspace's deliveries.
      - `alerts` integer, required: Number of alerts using this channel.
      - `activeAlerts` integer, required: How many of them are enabled. At 0 the channel currently gets nothing.
      - `lastDeliveryAt` string, nullable, required: Time of the latest delivery attempt, whether it worked or not.
      - `last7d` object, required: Deliveries over the past 7 days.
        - `total` integer, required
        - `failed` integer, required
    - `createdAt` string, required: UTC time in ISO 8601.
    - `kind` 'slack', required
    - `config` object, required
      - `channelId` string, required: The Slack channel's id.
      - `channelName` string, required: The Slack channel's name, without #.
      - `events` string[], required: Attention events this channel gets directly, without a rule. Each sends one short message when an item opens (see GET /v1/attention). Empty when there are none.
  - EmailChannel
    - `id` string, required: The channel's id (dest_...).
    - `label` string, required
    - `stats` object, required: Counted from this workspace's deliveries.
      - `alerts` integer, required: Number of alerts using this channel.
      - `activeAlerts` integer, required: How many of them are enabled. At 0 the channel currently gets nothing.
      - `lastDeliveryAt` string, nullable, required: Time of the latest delivery attempt, whether it worked or not.
      - `last7d` object, required: Deliveries over the past 7 days.
        - `total` integer, required
        - `failed` integer, required
    - `createdAt` string, required: UTC time in ISO 8601.
    - `kind` 'email', required
    - `config` object, required
      - `recipients` object[], required: All addresses on the list, each with its confirmation.
        - `email` string, required
        - `confirmedAt` string, nullable, required: Null until the address is confirmed with its link. Addresses that are not confirmed get nothing.
      - `events` string[], required: Attention events this channel gets directly, without a rule. Each sends one short message when an item opens (see GET /v1/attention). Empty when there are none.
  - WebhookChannel
    - `id` string, required: The channel's id (dest_...).
    - `label` string, required
    - `stats` object, required: Counted from this workspace's deliveries.
      - `alerts` integer, required: Number of alerts using this channel.
      - `activeAlerts` integer, required: How many of them are enabled. At 0 the channel currently gets nothing.
      - `lastDeliveryAt` string, nullable, required: Time of the latest delivery attempt, whether it worked or not.
      - `last7d` object, required: Deliveries over the past 7 days.
        - `total` integer, required
        - `failed` integer, required
    - `createdAt` string, required: UTC time in ISO 8601.
    - `kind` 'webhook', required
    - `config` object, required
      - `url` string, required: The URL that receives the signed POST requests.
      - `headers` object, required: Additional headers you set for each request.
      - `events` string[], required: Account events this endpoint gets directly, without a rule. These are keyword and wallet changes and the attention events. Empty when there are none. Mentions and digests still arrive through rules.
      - `secret` string: Returned only when the channel is created or the secret rotated. It signs each request. X-Mentions-Signature-V2 holds v2= followed by the hex HMAC-SHA256 of "<X-Mentions-Timestamp>.<raw body>". Reject timestamps more than a few minutes old. X-Mentions-Signature, the hex HMAC-SHA256 of the raw body only, is still sent for older verifiers.
  - TelegramChannel
    - `id` string, required: The channel's id (dest_...).
    - `label` string, required
    - `stats` object, required: Counted from this workspace's deliveries.
      - `alerts` integer, required: Number of alerts using this channel.
      - `activeAlerts` integer, required: How many of them are enabled. At 0 the channel currently gets nothing.
      - `lastDeliveryAt` string, nullable, required: Time of the latest delivery attempt, whether it worked or not.
      - `last7d` object, required: Deliveries over the past 7 days.
        - `total` integer, required
        - `failed` integer, required
    - `createdAt` string, required: UTC time in ISO 8601.
    - `kind` 'telegram', required
    - `config` object, required
      - `chatId` string, required: The Telegram chat's id.
      - `chatType` 'private' | 'group' | 'supergroup' | 'channel', required
      - `events` string[], required: Attention events this channel gets directly, without a rule. Each sends one short message when an item opens (see GET /v1/attention). Empty when there are none.

## Other responses

- `400`: The channel kind doesn't support one of the events. Slack, email and Telegram accept attention events only
- `401`: The API key is missing or not valid
- `404`: No channel with this id

---

[API](https://skmtc.dev/rumoro/apis/rumoro-api.md) · [All operations](https://skmtc.dev/rumoro/apis/rumoro-api/llms.txt) · [OpenAPI document](https://skmtc.dev/rumoro/apis/rumoro-api/revisions/9ef63ea894d1?raw)
