Discord Bot API
Send messages to Discord channels from Ampersand apps (errors, contact forms, ops). Public JSON API — no JWT. Admin UI uses Ampersand OAuth cookie.
Base URL
https://discord.ampersand-it.com/Authentication
POST /api/discordbot/* is AllowAnonymous. clientId / guildId / channelId in JSON identify the target. clientId is the DiscordClient name (usually ampersand) or its GUID — not an OAuth client.
Admin MVC (clients/guilds/channels) uses cookie OAuth client ampersand-infrostructure.
Ids
clientId — GUID of DiscordClient or name, e.g. ampersand
guildId — Discord snowflake or internal GUID
channelId — Discord snowflake or internal GUID
Available Endpoints
POST /api/discordbot/sendmessage
POST /api/discordbot/canSendMessage
GET /api/discordbot/ping
GET /Ping/test
GET /api/Ping/testUsage Example
curl -X POST "https://discord.ampersand-it.com/api/discordbot/sendmessage" \
-H "Content-Type: application/json" \
-d '{
"clientId": "ampersand",
"guildId": "1156304516619182170",
"channelId": "1441865778541367356",
"title": "MusicBot",
"message": "Download completed"
}'
© 2026 Ampersand Documentation