Skip to main content
PATCH
Set a Discord server's channel scope

Authorizations

Authorization
string
header
required

Clerk API key. Create one in Settings → API Keys. Pass as Authorization: Bearer <key>. Keys carry a scope — read, write (implies read) or admin (implies write) — chosen when the key is minted. Each operation's security requirement (and its x-required-scope extension) names the minimum scope it needs; request the least-privileged key that covers the operations you call.

Path Parameters

The connected server's link id (DiscordServer.linkId).

Required range: x <= 9007199254740991
Example:

12

Body

application/json
channelIds
string[]
required

Channel ids this workspace reads from the server. Every id must be a channel of the server the bot can read (threads count as their parent channel). [] = the whole server.

Maximum array length: 500

A Discord snowflake id as a decimal string (64-bit — never parse it as a number).

Pattern: ^\d{1,20}$
Example:

Response

200 response

This workspace's link to the server.

Required range: -9007199254740991 <= x <= 9007199254740991
guildId
string
required

A Discord snowflake id as a decimal string (64-bit — never parse it as a number).

Pattern: ^\d{1,20}$
Example:

"1290000000000000200"

name
string
required
icon
string | null
required

Discord icon hash; null when the server has none.

iconUrl
string | null
required
Example:

"https://cdn.discordapp.com/icons/1290000000000000100/a1b2.png"

approximateMemberCount
integer | null
required
Required range: -9007199254740991 <= x <= 9007199254740991
status
enum<string>
required

pending_bot: installed, waiting for the bot to come online in the server. active: messages flow. bot_removed: the bot was removed — reconnect it in the app.

Available options:
pending_bot,
active,
bot_removed
statusChangedAt
string
required
Example:

"2026-10-28T12:00:00.000Z"

channelAllowlist
string[]
required

Channel ids this workspace reads; [] = the whole server.

A Discord snowflake id as a decimal string (64-bit — never parse it as a number).

Pattern: ^\d{1,20}$
channels
object[]
required

The server's channels a scope may name (no categories, no threads), readable or not.

readableChannelCount
integer
required
Required range: -9007199254740991 <= x <= 9007199254740991
messagesPerDay7d
number | null
required

Average messages per day over the last 7 days; null until the collector reports stats.

statsUpdatedAt
string | null
required
Example:

"2026-10-28T12:00:00.000Z"

defaultDailyCap
integer
required

The daily cap a new watch monitor gets by default (plan-tied).

Required range: -9007199254740991 <= x <= 9007199254740991
Example:

100

estimatedMonthlyMentions
integer | null
required

Mentions a watch monitor with the default cap is expected to create per month (messagesPerDay7d × prefilter pass ratio × 30, capped at defaultDailyCap × 30). null = unknown (no stats yet).

Required range: -9007199254740991 <= x <= 9007199254740991
createdAt
string
required
Example:

"2026-10-28T12:00:00.000Z"