---
title: "Update a Discord channel"
method: PATCH
path: "/discord/channels/{channel_id}"
tags: ["Connections"]
---

# Update a Discord channel

`PATCH /discord/channels/{channel_id}`

## Request

- Base URL: `https://api.shortsync.app/v1`
- URL: `https://api.shortsync.app/v1/discord/channels/{channel_id}`
- Auth: HTTP bearer

Rename a channel or change whether it's a default target.

## Request body

- object
  - `label` string
  - `is_default` boolean: Pre-select this channel for posts that don't set `channel_ids`.

## Response `200`

The updated channel.

- DiscordChannel: A Discord channel connected to the workspace. Never includes the webhook URL.
  - `id` string, uuid, required: Pass in `platform_options.discord.channel_ids`.
  - `label` string, required: Display name shown in ShortSync.
  - `guild_id` string, nullable: Discord server id.
  - `guild_name` string, nullable
  - `channel_id` string, required: Discord's channel id.
  - `is_default` boolean, required: Posts without `channel_ids` go to every default channel.
  - `is_forum` boolean, required: Forum channel; each post needs a `thread_name` (falls back to the caption's first line). Learned on the first publish.
  - `status` 'active' | 'needs_reconnect', required: `needs_reconnect` means Discord no longer accepts the webhook.
  - `source` 'paste' | 'oauth', required: Connected by pasting a webhook URL or through Discord sign-in.
  - `created_at` string, date-time, required

## Other responses

- `400`: Invalid or empty body (`INVALID_LABEL`, `INVALID_IS_DEFAULT`, `EMPTY_UPDATE`).
- `401`: Missing, malformed, or revoked token.
- `403`: Token is valid but cannot access this resource. Common cases: - `INSUFFICIENT_SCOPE` - token lacks the required scope. - `WORKSPACE_NOT_ALLOWED` - account token is allowlisted to other workspaces.
- `404`: Resource does not exist or is not visible to this token.
- `429`: Per-key sliding-window rate limit (60 req/min), per-org monthly request quota, or per-user upload cap was hit. `RATE_LIMIT_EXCEEDED` carries the window headers; `QUOTA_EXCEEDED` carries `details.quota` (which counter), `used`, `limit`, `resets_at`, and `upgrade_url`. `UPLOAD_QUOTA_EXCEEDED` (Free tier on `POST /posts` only) carries the same shape plus `details.remaining`.

---

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