API resource
Discord
Each connected Discord channel is its own account: Create a post with platforms: ["discord"] sends to every connected channel (narrow it with account_ids). These calls manage the server the bot is in: channels, roles, members, pins, threads, scheduled events and direct messages. Every id here is a Discord snowflake, passed through unchanged, so it works in mentions like <@&roleId>. Replies to the bot's DMs are not readable.
Connect more Discord channels
/v1/connect/discordWorks on: Discord
Body
account_idstringrequiredA connected Discord channel of the same server (its acc_ id). Or pass guild_id instead.
channel_idsstring[]requiredUp to 25 channel ids from List Discord guild channels: text, announcement or forum channels the bot can see.
guild_idstringThe server id, instead of account_id.
curl -X POST "https://creatoros-production-5658.up.railway.app/v1/connect/discord" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"account_id": "acc_Dc7Wm3Kq1Vz6Ny4Lb8Hc2Jr5Pd0Fs7Ga3Ue9Ki1Oq4D",
"channel_ids": [
"1234567890123456789"
]
}'{
"message": "Discord channel connected successfully",
"account": {
"accountId": "acc_Dc7Wm3Kq1Vz6Ny4Lb8Hc2Jr5Pd0Fs7Ga3Ue9Ki1Oq4D",
"platform": "discord",
"displayName": "Acme HQ - #announcements",
"channelId": "1234567890123456789",
"guildId": "1098765432109876543",
"isActive": true
}
}List Discord guild channels
/v1/accounts/{accountId}/discord-channelsWorks on: Discord
Path parameters
accountIdstringrequiredcurl "https://creatoros-production-5658.up.railway.app/v1/accounts/acc_Dc7Wm3Kq1Vz6Ny4Lb8Hc2Jr5Pd0Fs7Ga3Ue9Ki1Oq4D/discord-channels" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"channels": [
{
"id": "string",
"name": "string",
"type": 0
}
]
}Get Discord account settings
/v1/accounts/{accountId}/discord-settingsWorks on: Discord
Path parameters
accountIdstringrequiredcurl "https://creatoros-production-5658.up.railway.app/v1/accounts/acc_Dc7Wm3Kq1Vz6Ny4Lb8Hc2Jr5Pd0Fs7Ga3Ue9Ki1Oq4D/discord-settings" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"account": {
"id": "string",
"platform": "discord",
"username": "string",
"displayName": "string",
"profilePicture": "string",
"channelId": "1234567890123456789",
"channelName": "string",
"channelType": "string",
"guildId": "1098765432109876543",
"webhookUsername": "string",
"webhookAvatarUrl": "string"
}
}Update Discord settings
/v1/accounts/{accountId}/discord-settingsWorks on: Discord
Path parameters
accountIdstringrequiredBody
webhookUsernamestringCustom display name for the webhook (1-80 chars). Empty string resets to default ("Creator OS"). Cannot contain "clyde" or "discord".
webhookAvatarUrlstringCustom avatar URL. Empty string resets to default bot avatar.
channelIdstringSwitch to a different channel in the same guild. Must be a text (0), announcement (5), or forum (15) channel.
curl -X PATCH "https://creatoros-production-5658.up.railway.app/v1/accounts/acc_Dc7Wm3Kq1Vz6Ny4Lb8Hc2Jr5Pd0Fs7Ga3Ue9Ki1Oq4D/discord-settings" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"webhookUsername": "string"
}'{
"message": "Discord settings updated",
"account": {
"id": "string",
"platform": "discord",
"username": "string",
"displayName": "string",
"profilePicture": "string",
"channelId": "1234567890123456789",
"channelName": "string",
"channelType": "string",
"guildId": "1098765432109876543",
"webhookUsername": "string",
"webhookAvatarUrl": "string"
}
}Crosspost Discord message
/v1/discord/channels/{channelId}/messages/{messageId}/crosspostWorks on: Discord
Path parameters
channelIdstringrequiredDiscord announcement channel snowflake ID
messageIdstringrequiredDiscord message snowflake ID
Query parameters
accountIdstringrequiredaccount id of the Discord account bound to this channel's guild
curl -X POST "https://creatoros-production-5658.up.railway.app/v1/discord/channels/1234567890123456789/messages/4455667788990011223/crosspost?accountId=acc_Dc7Wm3Kq1Vz6Ny4Lb8Hc2Jr5Pd0Fs7Ga3Ue9Ki1Oq4D" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"data": {}
}Delete a Discord channel message
/v1/discord/channels/{channelId}/messages/{messageId}Works on: Discord
Path parameters
channelIdstringrequiredDiscord channel snowflake ID
messageIdstringrequiredDiscord message snowflake ID
Query parameters
accountIdstringrequiredaccount id of the Discord account bound to this channel's guild
curl -X DELETE "https://creatoros-production-5658.up.railway.app/v1/discord/channels/1234567890123456789/messages/4455667788990011223?accountId=acc_Dc7Wm3Kq1Vz6Ny4Lb8Hc2Jr5Pd0Fs7Ga3Ue9Ki1Oq4D" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"success": true
}Unpin a Discord message
/v1/discord/channels/{channelId}/pins/{messageId}Works on: Discord
Path parameters
channelIdstringrequiredmessageIdstringrequiredQuery parameters
accountIdstringrequiredcurl -X DELETE "https://creatoros-production-5658.up.railway.app/v1/discord/channels/1234567890123456789/pins/4455667788990011223?accountId=acc_Dc7Wm3Kq1Vz6Ny4Lb8Hc2Jr5Pd0Fs7Ga3Ue9Ki1Oq4D" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"success": true,
"operation": "message_unpinned",
"channelId": "1234567890123456789",
"messageId": "4455667788990011223"
}Pin a Discord message
/v1/discord/channels/{channelId}/pins/{messageId}Works on: Discord
Path parameters
channelIdstringrequiredmessageIdstringrequiredQuery parameters
accountIdstringrequiredcurl -X PUT "https://creatoros-production-5658.up.railway.app/v1/discord/channels/1234567890123456789/pins/4455667788990011223?accountId=acc_Dc7Wm3Kq1Vz6Ny4Lb8Hc2Jr5Pd0Fs7Ga3Ue9Ki1Oq4D" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"success": true,
"operation": "message_pinned",
"channelId": "1234567890123456789",
"messageId": "4455667788990011223"
}List pinned messages
/v1/discord/channels/{channelId}/pinsWorks on: Discord
Path parameters
channelIdstringrequiredDiscord channel snowflake.
Query parameters
accountIdstringrequiredaccount id of any Discord account in the same guild.
curl "https://creatoros-production-5658.up.railway.app/v1/discord/channels/1234567890123456789/pins?accountId=acc_Dc7Wm3Kq1Vz6Ny4Lb8Hc2Jr5Pd0Fs7Ga3Ue9Ki1Oq4D" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"data": [
{
"id": "string",
"channel_id": "string",
"content": "string",
"timestamp": "2026-10-10T00:00:00.000Z",
"author": {},
"attachments": [
{}
],
"embeds": [
{}
]
}
]
}Create a Discord public thread
/v1/discord/channels/{channelId}/threadsWorks on: Discord
Path parameters
channelIdstringrequiredDiscord channel snowflake ID
Query parameters
accountIdstringrequiredaccount id of the Discord account bound to this channel's guild
Body
namestringrequiredThread name
messageIdstringOptional message snowflake to start the thread from. Omit for a standalone thread.
autoArchiveDurationintegerMinutes of inactivity before the thread auto-archives. Discord accepts only these four values.
curl -X POST "https://creatoros-production-5658.up.railway.app/v1/discord/channels/1234567890123456789/threads?accountId=acc_Dc7Wm3Kq1Vz6Ny4Lb8Hc2Jr5Pd0Fs7Ga3Ue9Ki1Oq4D" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "string"
}'{
"data": {
"id": "string",
"name": "string"
}
}Send a Discord Direct Message
/v1/discord/dmsWorks on: Discord
Body
accountIdstringrequiredaccount id of the connected Discord account the bot speaks as. Caller must own the account (directly or via team membership).
userIdstringrequiredDiscord snowflake ID of the recipient (15-21 digits).
contentstringMessage text, up to 2,000 characters.
embedsobject[]Up to 10 Discord embeds. Same shape as channel-post embeds (title, description, color, fields, etc.). See DiscordPlatformData.embeds for the embed object schema.
attachmentsobject[]Up to 10 media attachments. Each is { type: image|video|gif|document, url, filename?, mimeType?, size? }.
ttsbooleanSend as text-to-speech message.
curl -X POST "https://creatoros-production-5658.up.railway.app/v1/discord/dms" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"accountId": "65a1b2c3d4e5f60718293a4b",
"userId": "1234567890123456789"
}'{
"messageId": "4455667788990011223",
"channelId": "1234567890123456789",
"url": "string",
"timestamp": "2026-10-10T00:00:00.000Z",
"recipient": {
"userId": "2233445566778899001",
"platform": "discord"
},
"account": {
"id": "string",
"username": "string",
"displayName": "string"
}
}Delete a Discord scheduled event
/v1/discord/guilds/{guildId}/events/{eventId}Works on: Discord
Path parameters
guildIdstringrequiredeventIdstringrequiredQuery parameters
accountIdstringrequiredcurl -X DELETE "https://creatoros-production-5658.up.railway.app/v1/discord/guilds/1098765432109876543/events/5566778899001122334?accountId=acc_Dc7Wm3Kq1Vz6Ny4Lb8Hc2Jr5Pd0Fs7Ga3Ue9Ki1Oq4D" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"success": true,
"deleted": "string"
}Get a Discord scheduled event
/v1/discord/guilds/{guildId}/events/{eventId}Works on: Discord
Path parameters
guildIdstringrequiredeventIdstringrequiredQuery parameters
accountIdstringrequiredcurl "https://creatoros-production-5658.up.railway.app/v1/discord/guilds/1098765432109876543/events/5566778899001122334?accountId=acc_Dc7Wm3Kq1Vz6Ny4Lb8Hc2Jr5Pd0Fs7Ga3Ue9Ki1Oq4D" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"data": {
"id": "string",
"guild_id": "string",
"channel_id": "string",
"creator_id": "string",
"name": "string",
"description": "string",
"scheduled_start_time": "2026-10-10T00:00:00.000Z",
"scheduled_end_time": "2026-10-10T00:00:00.000Z",
"privacy_level": 2,
"status": 1,
"entity_type": 1,
"entity_id": "string",
"entity_metadata": {
"location": "string"
},
"user_count": 0,
"image": "string"
}
}Update a Discord scheduled event
/v1/discord/guilds/{guildId}/events/{eventId}Works on: Discord
Path parameters
guildIdstringrequiredeventIdstringrequiredBody
accountIdstringrequirednamestringdescriptionstringstartsAtstringendsAtstringlocationstringFor external events.
statusstringStatus transition. Most common: 'cancelled' to cancel an event.
imageDataUristringcurl -X PATCH "https://creatoros-production-5658.up.railway.app/v1/discord/guilds/1098765432109876543/events/5566778899001122334" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"accountId": "acc_Dc7Wm3Kq1Vz6Ny4Lb8Hc2Jr5Pd0Fs7Ga3Ue9Ki1Oq4D"
}'{
"data": {
"id": "string",
"guild_id": "string",
"channel_id": "string",
"creator_id": "string",
"name": "string",
"description": "string",
"scheduled_start_time": "2026-10-10T00:00:00.000Z",
"scheduled_end_time": "2026-10-10T00:00:00.000Z",
"privacy_level": 2,
"status": 1,
"entity_type": 1,
"entity_id": "string",
"entity_metadata": {
"location": "string"
},
"user_count": 0,
"image": "string"
}
}List Discord scheduled events
/v1/discord/guilds/{guildId}/eventsWorks on: Discord
Path parameters
guildIdstringrequiredQuery parameters
accountIdstringrequiredwithUserCountbooleanInclude user_count on each event.
curl "https://creatoros-production-5658.up.railway.app/v1/discord/guilds/1098765432109876543/events?accountId=acc_Dc7Wm3Kq1Vz6Ny4Lb8Hc2Jr5Pd0Fs7Ga3Ue9Ki1Oq4D" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"data": [
{
"id": "string",
"guild_id": "string",
"channel_id": "string",
"creator_id": "string",
"name": "string",
"description": "string",
"scheduled_start_time": "2026-10-10T00:00:00.000Z",
"scheduled_end_time": "2026-10-10T00:00:00.000Z",
"privacy_level": 2,
"status": 1,
"entity_type": 1,
"entity_id": "string",
"entity_metadata": {
"location": "string"
},
"user_count": 0,
"image": "string"
}
]
}Create a Discord scheduled event
/v1/discord/guilds/{guildId}/eventsWorks on: Discord
Path parameters
guildIdstringrequiredBody
accountIdstringrequirednamestringrequireddescriptionstringstartsAtstringrequiredISO 8601 start time. Must be in the future.
entityobjectrequiredimageDataUristringOptional cover image as a base64 data URI.
curl -X POST "https://creatoros-production-5658.up.railway.app/v1/discord/guilds/1098765432109876543/events" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"accountId": "acc_Dc7Wm3Kq1Vz6Ny4Lb8Hc2Jr5Pd0Fs7Ga3Ue9Ki1Oq4D",
"name": "string",
"startsAt": "2026-10-10T00:00:00.000Z",
"entity": {
"type": "external",
"location": "string",
"endsAt": "2026-10-10T00:00:00.000Z"
}
}'{
"data": {
"id": "string",
"guild_id": "string",
"channel_id": "string",
"creator_id": "string",
"name": "string",
"description": "string",
"scheduled_start_time": "2026-10-10T00:00:00.000Z",
"scheduled_end_time": "2026-10-10T00:00:00.000Z",
"privacy_level": 2,
"status": 1,
"entity_type": 1,
"entity_id": "string",
"entity_metadata": {
"location": "string"
},
"user_count": 0,
"image": "string"
}
}Search Discord guild members
/v1/discord/guilds/{guildId}/members/searchWorks on: Discord
Path parameters
guildIdstringrequiredQuery parameters
accountIdstringrequiredquerystringrequiredUsername or nickname prefix to match.
limitintegercurl "https://creatoros-production-5658.up.railway.app/v1/discord/guilds/1098765432109876543/members/search?accountId=acc_Dc7Wm3Kq1Vz6Ny4Lb8Hc2Jr5Pd0Fs7Ga3Ue9Ki1Oq4D&query=%3Cquery%3E" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"data": [
{
"user": {
"id": "string",
"username": "string",
"discriminator": "string",
"avatar": "string",
"global_name": "string"
},
"nick": "string",
"roles": [
"string"
],
"joined_at": "2026-10-10T00:00:00.000Z",
"premium_since": "2026-10-10T00:00:00.000Z"
}
]
}Remove a role from a guild member
/v1/discord/guilds/{guildId}/members/{userId}/roles/{roleId}Works on: Discord
Path parameters
guildIdstringrequireduserIdstringrequiredroleIdstringrequiredQuery parameters
accountIdstringrequiredcurl -X DELETE "https://creatoros-production-5658.up.railway.app/v1/discord/guilds/1098765432109876543/members/2233445566778899001/roles/3344556677889900112?accountId=acc_Dc7Wm3Kq1Vz6Ny4Lb8Hc2Jr5Pd0Fs7Ga3Ue9Ki1Oq4D" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"success": true,
"operation": "role_removed",
"guildId": "1098765432109876543",
"userId": "2233445566778899001",
"roleId": "3344556677889900112"
}Assign a role to a guild member
/v1/discord/guilds/{guildId}/members/{userId}/roles/{roleId}Works on: Discord
Path parameters
guildIdstringrequireduserIdstringrequiredDiscord user snowflake to assign the role to.
roleIdstringrequiredQuery parameters
accountIdstringrequiredcurl -X PUT "https://creatoros-production-5658.up.railway.app/v1/discord/guilds/1098765432109876543/members/2233445566778899001/roles/3344556677889900112?accountId=acc_Dc7Wm3Kq1Vz6Ny4Lb8Hc2Jr5Pd0Fs7Ga3Ue9Ki1Oq4D" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"success": true,
"operation": "role_assigned",
"guildId": "1098765432109876543",
"userId": "2233445566778899001",
"roleId": "3344556677889900112"
}Get a Discord guild member
/v1/discord/guilds/{guildId}/members/{userId}Works on: Discord
Path parameters
guildIdstringrequireduserIdstringrequiredDiscord user snowflake.
Query parameters
accountIdstringrequiredcurl "https://creatoros-production-5658.up.railway.app/v1/discord/guilds/1098765432109876543/members/2233445566778899001?accountId=acc_Dc7Wm3Kq1Vz6Ny4Lb8Hc2Jr5Pd0Fs7Ga3Ue9Ki1Oq4D" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"data": {
"user": {
"id": "string",
"username": "string",
"discriminator": "string",
"avatar": "string",
"global_name": "string"
},
"nick": "string",
"roles": [
"string"
],
"joined_at": "2026-10-10T00:00:00.000Z",
"premium_since": "2026-10-10T00:00:00.000Z"
}
}List Discord guild members
/v1/discord/guilds/{guildId}/membersWorks on: Discord
Path parameters
guildIdstringrequiredQuery parameters
accountIdstringrequiredlimitintegerPage size (1-1000).
afterstringSnowflake of the last member from the previous page.
curl "https://creatoros-production-5658.up.railway.app/v1/discord/guilds/1098765432109876543/members?accountId=acc_Dc7Wm3Kq1Vz6Ny4Lb8Hc2Jr5Pd0Fs7Ga3Ue9Ki1Oq4D" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"data": [
{
"user": {
"id": "string",
"username": "string",
"discriminator": "string",
"avatar": "string",
"global_name": "string"
},
"nick": "string",
"roles": [
"string"
],
"joined_at": "2026-10-10T00:00:00.000Z",
"premium_since": "2026-10-10T00:00:00.000Z"
}
],
"pagination": {
"nextCursor": "string",
"hasMore": true
}
}Delete a Discord guild role
/v1/discord/guilds/{guildId}/roles/{roleId}Works on: Discord
Path parameters
guildIdstringrequiredDiscord guild snowflake ID
roleIdstringrequiredDiscord role snowflake ID
Query parameters
accountIdstringrequiredaccount id of the Discord account bound to this guild
curl -X DELETE "https://creatoros-production-5658.up.railway.app/v1/discord/guilds/1098765432109876543/roles/3344556677889900112?accountId=acc_Dc7Wm3Kq1Vz6Ny4Lb8Hc2Jr5Pd0Fs7Ga3Ue9Ki1Oq4D" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"success": true
}Edit a Discord guild role
/v1/discord/guilds/{guildId}/roles/{roleId}Works on: Discord
Path parameters
guildIdstringrequiredDiscord guild snowflake ID
roleIdstringrequiredDiscord role snowflake ID
Query parameters
accountIdstringrequiredaccount id of the Discord account bound to this guild
Body
namestringcolorintegerhoistbooleanmentionablebooleanpermissionsstringPermissions bitfield as a stringified integer
curl -X PATCH "https://creatoros-production-5658.up.railway.app/v1/discord/guilds/1098765432109876543/roles/3344556677889900112?accountId=acc_Dc7Wm3Kq1Vz6Ny4Lb8Hc2Jr5Pd0Fs7Ga3Ue9Ki1Oq4D" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "string"
}'{
"data": {
"id": "string",
"name": "string",
"color": 0,
"position": 0,
"permissions": "string",
"managed": true,
"mentionable": true,
"hoist": true
}
}List Discord guild roles
/v1/discord/guilds/{guildId}/rolesWorks on: Discord
Path parameters
guildIdstringrequiredDiscord guild snowflake ID
Query parameters
accountIdstringrequiredaccount id of the Discord account bound to this guild
curl "https://creatoros-production-5658.up.railway.app/v1/discord/guilds/1098765432109876543/roles?accountId=acc_Dc7Wm3Kq1Vz6Ny4Lb8Hc2Jr5Pd0Fs7Ga3Ue9Ki1Oq4D" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"data": [
{
"id": "string",
"name": "string",
"color": 0,
"position": 0,
"permissions": "string",
"managed": true,
"mentionable": true,
"hoist": true
}
]
}Create a Discord guild role
/v1/discord/guilds/{guildId}/rolesWorks on: Discord
Path parameters
guildIdstringrequiredDiscord guild snowflake ID
Query parameters
accountIdstringrequiredaccount id of the Discord account bound to this guild
Body
namestringrequiredcolorintegerDecimal color (0 = no color). 0xFF0000 red is 16711680.
hoistbooleanDisplay members with this role separately in the member list
mentionablebooleanAllow anyone to @mention this role
permissionsstringPermissions bitfield as a stringified integer
curl -X POST "https://creatoros-production-5658.up.railway.app/v1/discord/guilds/1098765432109876543/roles?accountId=acc_Dc7Wm3Kq1Vz6Ny4Lb8Hc2Jr5Pd0Fs7Ga3Ue9Ki1Oq4D" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "string"
}'{
"data": {
"id": "string",
"name": "string",
"color": 0,
"position": 0,
"permissions": "string",
"managed": true,
"mentionable": true,
"hoist": true
}
}