Skip to main content

This page is the machine-readable reference for the gateway. The interactive endpoint list below is compiled from the gateway's OpenAPI spec at build time, so it always matches the deployed API and stays fully indexed for search alongside the rest of the docs. If you are building your own client, you can download the raw OpenAPI spec to generate typed SDKs, Postman collections, or any other tooling directly from the source of truth.

GiselleBot Edge Service - api-gateway v5.0.0

Public API gateway for cycloptux's bots: Discord OAuth2 + JWT authority, bot reverse proxy, service API.

Base URL: https://gateway.cycloptux.com

Health

Service health and liveness

Returns a success message for a valid JWT or self token.

Responses

200Connectivity confirmation object
message: string - Success message
401Authentication token missing or revoked ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
403Authentication token invalid or unauthorized ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Auth

Discord OAuth2 login and JWT lifecycle

Exchanges the Discord authorization code, mints a gateway JWT, stores it under a temporary code and redirects to the original callback URL with that code.

Parameters

NameInTypeDescription
type queryobject
additionalProperties queryobject

Responses

403Missing code/state or Discord-side error ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
408State token expired ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Internal error ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Bots

Reverse proxy to linked bots

Returns the linked bots whose servers intersect the user's Discord guilds.

Responses

200Bots available to the user object
401User is unauthenticated ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Internal error or Discord API failure ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Discord API

Authenticated Discord user data, fetched with the caller's own OAuth session

Returns the JWT-authenticated user's Discord profile, fetched from Discord with the user's stored OAuth token.

Responses

200Discord user profile subset object
username: string - Discord username
discriminator: string - Discord discriminator
id: string - Discord user ID
avatar: null | string - Avatar hash
locale: string - User locale
401User is unauthenticated ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
403Invalid or unauthorized token ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Internal error or Discord API failure ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Services

API-key-authenticated endpoints for approved machine clients (short URL creation, image classification). A service API key is not self-serve - contact contact@discomm.cc to obtain one.

Fetches a previously cached NSFW prediction by its 24-hex cache ID via the NSFWJS microservice. Only usable for a cache_id your own service was already handed by a prior /nsfwjs/predict or /nsfwjs/cache response - a cache_id you were never given returns the same 404 as one that does not exist. Requires a valid service API key - this is not self-serve, contact contact@discomm.cc to obtain one.

Request Body (required)

cache_id: string - 24-hex MongoDB ObjectId of the cached prediction
nsfw_threshold: number - Optional custom NSFW threshold (0-1]

Responses

200Prediction object (passthrough from the NSFWJS microservice) object
400Cache ID missing or invalid ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
401API key was not supplied ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
403API key not authorized ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
404No cached image found ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Internal error ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Bot: API

Bot process liveness and shard-readiness probes

Always 200 while this process is up; the body reports whether all shards are ready. Unauthenticated (deploy health probe) - exempt from the /api auth gate.

Parameters

NameInTypeDescription
botId *pathstringThe linked bot's Discord application client ID.

Responses

200Shard readiness state: ready is true only when every expected shard reports a fresh 10s heartbeat. object
status: string (required) - ok (liveness) / ready (all shards up) / starting (still booting).
ready: boolean (required) - True only when every expected shard is ready.
shards: object (required) - Shard readiness counts.
  total: integer (required) - Number of shards the bot is expected to run.
  ready: integer (required) - Number of shards currently reporting a fresh heartbeat.
401Reserved for schema consistency - this route is exempt from the auth gate and never actually returns 401 ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Unexpected internal error ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Bot: Admin

Per-server admin module settings

Returns the per-channel auto-publish settings for every configured announcement channel.

Parameters

NameInTypeDescription
botId *pathstringThe linked bot's Discord application client ID.
serverId *pathstring

Responses

200Default Response object
channels: array<object> (required)
  channel_id: string
  publish_all: boolean
  publish_users: boolean
  publish_bots: boolean
  publish_webhooks: boolean
  publish_roles: array<string>
400Validation failed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
401Missing identity ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
403Not allowed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
404Not found ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Unexpected error ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Bot: Alarm

Per-server repeating and scheduled messages

Repeater and scheduled-message usage versus the server tier limits.

Parameters

NameInTypeDescription
botId *pathstringThe linked bot's Discord application client ID.
serverId *pathstring

Responses

200Default Response object
repeaters: object
  used: integer
  max: null | integer
scheduled: object
  used: integer
  max: integer
  horizon_hours: integer
400Validation failed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
401Missing identity ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
403Not allowed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
404Not found ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Unexpected error ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Bot: AutoModerator

Per-server automated moderation rules

Sets (or, with threshold: null, resets to default) the confidence threshold for flagging NSFW images.

Parameters

NameInTypeDescription
botId *pathstringThe linked bot's Discord application client ID.
serverId *pathstring

Request Body (required)

threshold: integer | null (required)

Responses

200Default Response object
threshold: number (required)
400Validation failed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
401Missing identity ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
403Not allowed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
404Not found ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Unexpected error ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Bot: AzurLane

Per-server Azur Lane game feed module

Lists the Azur Lane server-status feed subscriptions configured for this server.

Parameters

NameInTypeDescription
botId *pathstringThe linked bot's Discord application client ID.
serverId *pathstring

Responses

200Feed list. object
400Request failed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
401Missing or invalid authentication ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Unexpected internal error ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Bot: CustomReactions

Per-server custom emoji-reaction triggers

Returns every custom reaction owned by this server, decrypted. Global reactions are never included.

Parameters

NameInTypeDescription
botId *pathstringThe linked bot's Discord application client ID.
serverId *pathstring

Responses

200Default Response object
400Validation failed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
401Missing identity ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
403Not allowed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
404Not found ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Unexpected error ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Bot: EmojiSubmissions

Per-server emoji role submissions

Replaces the list of roles authorized to submit new emojis. Requires the Manage Emojis and Stickers permission.

Parameters

NameInTypeDescription
botId *pathstringThe linked bot's Discord application client ID.
serverId *pathstring

Request Body (required)

role_ids: array<string> (required)

Responses

200Default Response object
400Validation failed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
401Missing identity ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
403Not allowed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
404Not found ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Unexpected error ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Bot: Forms

Per-server forms module

Returns all form workflows for this server.

Parameters

NameInTypeDescription
botId *pathstringThe linked bot's Discord application client ID.
serverId *pathstring

Responses

200Default Response object
forms: array<object> (required)
400application/problem+json error envelope: { errors: [ { code, message } ] }. ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
401application/problem+json error envelope: { errors: [ { code, message } ] }. ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500application/problem+json error envelope: { errors: [ { code, message } ] }. ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Bot: General

Discord profile lookups and misc dashboard-facing utilities

Returns a ready-to-use OAuth2 invite URL (with the bot's current permission set) plus the raw permissions bitfield, for a dashboard "Add to Server" button. Unauthenticated at the route level - no server or user context needed - but still subject to the gateway's standard authentication requirement like every other /api route (that gate has its own exemption list, and /invite is not on it).

Parameters

NameInTypeDescription
botId *pathstringThe linked bot's Discord application client ID.

Responses

200Invite URL and permissions. object
url: string (required)
permissions: array<string> (required)
401Internal authorization token is invalid ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Unexpected error ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Bot: Greets

Per-server join/leave/role-change greet messages

Channel and DM welcome message settings for members joining the server. Read-only: returns an in-memory default when unconfigured, without persisting anything.

Parameters

NameInTypeDescription
botId *pathstringThe linked bot's Discord application client ID.
serverId *pathstring

Responses

200Default Response object
server_id: string
channel: object
  channel_id: null | string
  delay: integer
  delete_after: integer
  enabled: boolean
  message: string
  disabled_reason: null | string
  failure: object
    consecutive: integer (required)
    first_failed_at: null | string (required)
    last_failed_at: null | string (required)
    last_error: null | string (required)
dm: object
  delay: integer
  enabled: boolean
  message: string
  disabled_reason: null | string
  failure: object
    consecutive: integer (required)
    first_failed_at: null | string (required)
    last_failed_at: null | string (required)
    last_error: null | string (required)
updated_at: string
updated_by: string
origin: string
400Validation failed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
401Missing identity ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
403Not allowed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
404Not found ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Unexpected error ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Bot: Logs

Audit log retrieval

Returns paginated audit log entries, optionally filtered by module and time range. Requires the ViewAuditLog permission.

Parameters

NameInTypeDescription
botId *pathstringThe linked bot's Discord application client ID.
module querystringFilter to a single module name.
start querystringISO timestamp lower bound.
end querystringISO timestamp upper bound.
page_size querystringEntries per page.
page querystringPage number.
serverId *pathstring

Responses

200Paginated audit log entries. object
400Failed to fetch audit log entries ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
401Missing or invalid authentication ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
403User lacks the ViewAuditLog permission ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Unexpected internal error ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Bot: MahjongSoul

Per-server Mahjong Soul game feed module

Lists the Mahjong Soul server-status feed subscriptions configured for this server.

Parameters

NameInTypeDescription
botId *pathstringThe linked bot's Discord application client ID.
serverId *pathstring

Responses

200Feed list. object
400Request failed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
401Missing or invalid authentication ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Unexpected internal error ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Bot: Moderation

Per-server moderation settings and rules

Returns the channel -> role assignments for a channel-scoped punishment kind (`channelban`, `channelmute`, `channelimageban`). Unlike `mute`/`imageban`, these roles are genuinely per-channel, so this is a list rather than a single roleId.

Parameters

NameInTypeDescription
botId *pathstringThe linked bot's Discord application client ID.
serverId *pathstring
kind *pathstring

Responses

200Default Response array<object>
channelId: string (required)
roleId: string (required)
400Validation failed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
401Missing identity ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
403Not allowed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
404Not found ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Unexpected error ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Bot: Permissions

Per-server dashboard module authorization

Returns every module available in this server with its current permission state.

Parameters

NameInTypeDescription
botId *pathstringThe linked bot's Discord application client ID.
serverId *pathstring

Responses

200Default Response object
modules: array<object> (required)
  name: string
  title: string
  disabled: boolean
  everyone: boolean
  roles: array<string>
  users: array<string>
  channel_override_mode: string
  channel_overrides: array<string>
  default_everyone: boolean
  can_disable: boolean
  configured: boolean
400Validation failed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
401Missing identity ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
403Not allowed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
404Not found ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Unexpected error ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Bot: RaidRoom

Per-server raid room settings

Returns the current raid room settings for this server.

Parameters

NameInTypeDescription
botId *pathstringThe linked bot's Discord application client ID.
serverId *pathstring

Responses

200Default Response object
400Validation failed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
401Missing identity ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
403Not allowed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
404Not found ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Unexpected error ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Bot: Reddit

Per-server Reddit feed module

Lists the Reddit feed subscriptions configured for this server.

Parameters

NameInTypeDescription
botId *pathstringThe linked bot's Discord application client ID.
serverId *pathstring

Responses

200Feed list. object
400Request failed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
401Missing or invalid authentication ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
404Resource not found ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Unexpected internal error ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Bot: RSS

Per-server RSS feed module

Lists the RSS feed subscriptions configured for this server.

Parameters

NameInTypeDescription
botId *pathstringThe linked bot's Discord application client ID.
serverId *pathstring

Responses

200Feed list. object
400Request failed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
401Missing or invalid authentication ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
404Resource not found ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Unexpected internal error ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Bot: Send

Dashboard message composer

Sends a new message (content and/or embed) to a channel of this server via the bot.

Parameters

NameInTypeDescription
botId *pathstringThe linked bot's Discord application client ID.
serverId *pathstring

Request Body (required)

channel_id: string (required)
content: string | null (required)
embed: object | null (required)

Responses

201Default Response object
message_id: string (required)
channel_id: string (required)
400Validation failed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
401Missing identity ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
403Not allowed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
404Not found ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
429Rate limited ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Unexpected error ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Bot: Social

Per-server leveling/EXP settings

Returns the no-EXP role and no-EXP channels configured on this server.

Parameters

NameInTypeDescription
botId *pathstringThe linked bot's Discord application client ID.
serverId *pathstring

Responses

200Default Response object
400Validation failed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
401Missing identity ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
403Not allowed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
404Not found ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Unexpected error ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Bot: Tools

Per-server clock channels, member-count channels, URL shortener

Lists every clock channel configured for this server.

Parameters

NameInTypeDescription
botId *pathstringThe linked bot's Discord application client ID.
serverId *pathstring

Responses

200Default Response array<object>
400Validation failed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
401Missing identity ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
403Not allowed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
404Not found ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Unexpected error ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Bot: Trivia

Per-server trivia games and templates

Returns every trivia category (built-in and custom) available to this server.

Parameters

NameInTypeDescription
botId *pathstringThe linked bot's Discord application client ID.
serverId *pathstring

Responses

200Default Response object
400Validation failed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
401Missing identity ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
403Not allowed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
404Not found ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Unexpected error ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Bot: Twitch

Per-server Twitch notification module

Lists the Twitch notification feed subscriptions configured for this server.

Parameters

NameInTypeDescription
botId *pathstringThe linked bot's Discord application client ID.
serverId *pathstring

Responses

200Feed list. object
400Request failed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
401Missing or invalid authentication ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
404Resource not found ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Unexpected internal error ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Bot: Verification

Per-server member verification settings

Returns the current verification settings for this server.

Parameters

NameInTypeDescription
botId *pathstringThe linked bot's Discord application client ID.
serverId *pathstring

Responses

200Default Response object
400Validation failed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
401Missing identity ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
403Not allowed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
404Not found ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Unexpected error ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Bot: Webhooks

Inbound webhook ingestion endpoints

Bot: YouTube

Per-server YouTube notification module

Lists the YouTube notification feed subscriptions configured for this server.

Parameters

NameInTypeDescription
botId *pathstringThe linked bot's Discord application client ID.
serverId *pathstring

Responses

200Feed list. object
400Request failed ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
401Missing or invalid authentication ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
404Resource not found ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Unexpected internal error ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Profile

Public (no login): works from any device. Confirms the pending address the token belongs to and returns it masked. Single-use, expires after 30 minutes, replaced by any newer request. Every failure returns the same 400 so the endpoint cannot be used to probe tokens.

Request Body (required)

token: string (required)

Responses

200Confirmed. object
verified: boolean
email: string - The confirmed address, masked (j***@example.com).
400Invalid, used, superseded or expired link ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
429Too many attempts from this address ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Internal error ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.

Webhooks

Public endpoint for the SNS HTTPS subscription on the SES notification topic. Relays the message unchanged to us-email, which authenticates it (allowlisted topic, RSA signature from an SNS-hosted certificate, freshness) and then marks a permanently bounced or complaining address as rejected, or confirms the subscription. Not part of the dashboard API surface.

Request Body (required)

Type: string (required)

Responses

200Handled (or intentionally ignored). object
handled: boolean
400Malformed body ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
403Not a genuine SNS message from the configured topic ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
429Too many requests from this address ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
500Internal error ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.
502us-email could not be reached ProblemJsonError
errors: array<object> (required)
  code: string - HTTP reason name (e.g. "NOT_FOUND").
  message: string - Human-readable error message.