Discord Connector
Auth type: bearer_token (Discord Bot Token)
The Discord connector provides 7 actions covering messages, channels, members, and roles.
Setup
- Create an application at discord.com/developers/applications
- Go to the Bot section and create a bot
- Copy the bot token
- Enable Server Members Intent under Privileged Gateway Intents (required for
members.list) - Invite the bot to your server with appropriate permissions
- 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
| Action | Description | Required Params | Returns |
|---|---|---|---|
messages.send | Send a message to a channel | channel_id, content | {id, content, author_id, author_username, channel_id, timestamp, type} |
Message content is limited to 2000 characters. Requires Send Messages permission.
Channels
| Action | Description | Required Params | Returns |
|---|---|---|---|
channels.list | List guild channels | guild_id | [{id, name, type, topic, position, nsfw, parent_id, guild_id}] |
Returns all channels at once (no pagination). Requires View Channels permission.
Members
| Action | Description | Required Params | Returns |
|---|---|---|---|
members.list | List guild members | guild_id | [{user_id, username, display_name, nick, roles, joined_at, is_bot}] |
members.ban | Ban a member | guild_id, user_id | {success, guild_id, user_id} |
members.kick | Kick a member | guild_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
| Action | Description | Required Params | Returns |
|---|---|---|---|
roles.list | List guild roles | guild_id | [{id, name, color, position, permissions, mentionable, managed}] |
roles.assign | Assign a role to a member | guild_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=50Assign 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