Skip to Content

Discord Connector

Auth type: bearer_token (Discord Bot Token)

The Discord connector provides 7 actions covering messages, channels, members, and roles.

Setup

  1. Create an application at discord.com/developers/applications 
  2. Go to the Bot section and create a bot
  3. Copy the bot token
  4. Enable Server Members Intent under Privileged Gateway Intents (required for members.list)
  5. Invite the bot to your server with appropriate permissions
  6. Store the token:
# Via CLI feelr auth discord # Via API curl -X PUT https://api.feelr.dev/admin/credentials/discord \ -H "Authorization: Bearer $ADMIN_TOKEN" \ -H "Content-Type: application/json" \ -d '{"token": "your_bot_token_here"}'

Discord bot tokens use the Bot prefix in the Authorization header (handled automatically by Feelr).

Action Reference

Messages

ActionDescriptionRequired ParamsReturns
messages.sendSend a message to a channelchannel_id, content{id, content, author_id, author_username, channel_id, timestamp, type}

Message content is limited to 2000 characters. Requires Send Messages permission.

Channels

ActionDescriptionRequired ParamsReturns
channels.listList guild channelsguild_id[{id, name, type, topic, position, nsfw, parent_id, guild_id}]

Returns all channels at once (no pagination). Requires View Channels permission.

Members

ActionDescriptionRequired ParamsReturns
members.listList guild membersguild_id[{user_id, username, display_name, nick, roles, joined_at, is_bot}]
members.banBan a memberguild_id, user_id{success, guild_id, user_id}
members.kickKick a memberguild_id, user_id{success, guild_id, user_id}

members.list optional params: limit (1-1000, default: 100). Uses cursor-based pagination via user ID.

members.ban optional params: delete_message_seconds (0-604800, seconds of message history to delete, default: 0)

Requires Server Members Intent for members.list, Ban Members permission for members.ban, Kick Members permission for members.kick. Kicked members can rejoin via invite; banned members cannot.

Roles

ActionDescriptionRequired ParamsReturns
roles.listList guild rolesguild_id[{id, name, color, position, permissions, mentionable, managed}]
roles.assignAssign a role to a memberguild_id, user_id, role_id{success, guild_id, user_id, role_id}

Returns all roles at once (no pagination). Requires Manage Roles permission for roles.assign.

Discord uses guild_id to identify servers. You can find your guild ID by enabling Developer Mode in Discord settings, then right-clicking the server name.

Examples

Send a message

curl -X POST https://api.feelr.dev/v1/discord/messages.send \ -H "X-Feelr-Key: fk_live_..." \ -H "Content-Type: application/json" \ -d '{"channel_id": "1234567890", "content": "Hello from Feelr!"}'
feelr run discord messages.send channel_id=1234567890 content="Hello from Feelr!"

List server members

curl "https://api.feelr.dev/v1/discord/members.list?guild_id=9876543210&limit=50" \ -H "X-Feelr-Key: fk_live_..."
feelr run discord members.list guild_id=9876543210 limit=50

Assign a role

curl -X POST https://api.feelr.dev/v1/discord/roles.assign \ -H "X-Feelr-Key: fk_live_..." \ -H "Content-Type: application/json" \ -d '{"guild_id": "9876543210", "user_id": "1111111111", "role_id": "2222222222"}'
feelr run discord roles.assign guild_id=9876543210 user_id=1111111111 role_id=2222222222
Last updated on