Channel
Channel object
| Field | Type | Description |
|---|---|---|
id | UUID | |
server_id | UUID | |
parent_id | ?UUID | The category it is in |
type | string | text, voice, forum, todo, doc, calendar, party, gallery or category |
name | string | |
topic | string | |
position | integer | |
user_limit | integer | For voice channels: how many may be in it (0 for as many as a call can carry) |
permissions | string | The bot's permissions in this channel, after the channel's overwrites, as a decimal string |
A channel the bot cannot see (VIEW_CHANNEL) is not in the list and answers 404.
Example channelJSON
json
{
"id": "2d7c4a90-1b3e-4f58-9a6c-8e0b5d3c7f14",
"server_id": "5f1d2b8e-7a64-4d07-8d3a-0b9f6c4e2a11",
"parent_id": "c41b8e07-5a2d-4f93-b6e1-0d7a39f2c850",
"type": "text",
"name": "general",
"topic": "Anything goes",
"position": 0,
"user_limit": 0,
"permissions": "3072"
}Get server channels
GET
/servers/{server.id}/channels Returns an array of channels: the ones the bot can see.
Get channel
GET
/channels/{channel.id} Returns a channel.
Create server channel
POST
/servers/{server.id}/channels Needs Manage Channels. Body: type (default text), name, topic, parent_id, user_limit. Returns the new channel.
RequestPOST
/servers/{server.id}/channels bash
curl -X POST "https://moymo.net/api/app/v1/servers/$SERVER_ID/channels" \
-H "Authorization: Bot $MOYMO_BOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "type": "text", "name": "dice-room", "topic": "Roll here" }'js
const response = await fetch(`https://moymo.net/api/app/v1/servers/${serverId}/channels`, {
method: 'POST',
headers: {
Authorization: `Bot ${process.env.MOYMO_BOT_TOKEN}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({ type: 'text', name: 'dice-room', topic: 'Roll here' })
})
const channel = await response.json()Response200OKJSON
json
{
"id": "e8a15c3d-9b72-4e06-a4f8-2c6d0b1e7a53",
"server_id": "5f1d2b8e-7a64-4d07-8d3a-0b9f6c4e2a11",
"type": "text",
"name": "dice-room",
"topic": "Roll here",
"position": 5,
"user_limit": 0,
"permissions": "3072"
}Modify channel
PATCH
/channels/{channel.id} Body: name, topic, parent_id, user_limit. Needs Manage Channels. Returns the channel.
Delete channel
DELETE
/channels/{channel.id} Needs Manage Channels.
Create channel invite
POST
/channels/{channel.id}/invites Needs Create Invite. Body (all optional): max_uses, max_age_hours. The invite link is https://moymo.net/server/<code>.
RequestPOST
/channels/{channel.id}/invites Shellbash
curl -X POST "https://moymo.net/api/app/v1/channels/$CHANNEL_ID/invites" \
-H "Authorization: Bot $MOYMO_BOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "max_uses": 5, "max_age_hours": 24 }'Response200OKJSON
json
{
"code": "k7Qm2xPa",
"expires_at": "2026-11-04T18:21:07Z",
"max_uses": 5,
"uses": 0
}Trigger typing indicator
POST
/channels/{channel.id}/typing Shows "Dice Roller is typing…" for a few seconds. Needs Send Messages.