discord

Discord API for servers and messages. Use when user mentions "Discord", "discord.com", "discord.gg", shares a Discord link, "Discord server", or asks about Discord bots.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "discord" with this command: npx skills add vm0-ai/vm0-skills/vm0-ai-vm0-skills-discord

Discord Bot API

Use the Discord Bot API via direct curl calls to manage channels, guilds, messages, and users.

Official docs: https://discord.com/developers/docs


When to Use

Use this skill when you need to:

  • Send messages to specific channels
  • Read messages from channels
  • Manage channels (create, edit, delete)
  • Get server info (guilds, members, roles)
  • React to messages and moderate content
  • Create webhooks programmatically

For simple message posting, use discord-webhook skill instead.


Prerequisites

1. Create Application

  1. Go to Discord Developer Portal
  2. Click "New Application" and give it a name
  3. Go to "Bot" section and click "Add Bot"

2. Get Bot Token

  1. In Bot section, click "Reset Token"
  2. Copy the token (shown only once)
export DISCORD_BOT_TOKEN="MTIzNDU2Nzg5MDEyMzQ1Njc4OQ.ABcDeF.xxxxx..."

3. Enable Intents (if needed)

In Bot section, enable:

  • Presence Intent (for user status)
  • Server Members Intent (for member list)
  • Message Content Intent (for reading messages)

4. Invite Bot to Server

  1. Go to OAuth2 → URL Generator
  2. Select scopes: bot, applications.commands
  3. Select permissions needed (e.g., Send Messages, Read Messages)
  4. Copy URL and open in browser to invite

5. Get IDs

Enable Developer Mode: User Settings → Advanced → Developer Mode Right-click any channel/user/server → Copy ID


How to Use

Base URL: https://discord.com/api/v10

Authorization header: Authorization: Bot YOUR_TOKEN


1. Get Current Bot User

curl -s "https://discord.com/api/v10/users/@me" -H "Authorization: Bot $(printenv DISCORD_BOT_TOKEN)" | jq '{id, username, discriminator}'

2. Send Message to Channel

Write to /tmp/discord_request.json:

{
  "content": "Hello from bot!"
}

Then run (replace <your-channel-id> with the actual channel ID):

curl -s -X POST "https://discord.com/api/v10/channels/<your-channel-id>/messages" -H "Authorization: Bot $(printenv DISCORD_BOT_TOKEN)" -H "Content-Type: application/json" -d @/tmp/discord_request.json

3. Send Embed Message

Write to /tmp/discord_request.json:

{
  "embeds": [
    {
      "title": "Bot Message",
      "description": "This is from the bot API",
      "color": 5793266
    }
  ]
}

Then run (replace <your-channel-id> with the actual channel ID):

curl -s -X POST "https://discord.com/api/v10/channels/<your-channel-id>/messages" -H "Authorization: Bot $(printenv DISCORD_BOT_TOKEN)" -H "Content-Type: application/json" -d @/tmp/discord_request.json

4. Get Channel Info

Replace <your-channel-id> with the actual channel ID:

curl -s "https://discord.com/api/v10/channels/<your-channel-id>" -H "Authorization: Bot $(printenv DISCORD_BOT_TOKEN)" | jq '{id, name, type, guild_id}'

5. Get Channel Messages

Replace <your-channel-id> with the actual channel ID:

curl -s "https://discord.com/api/v10/channels/<your-channel-id>/messages?limit=10" -H "Authorization: Bot $(printenv DISCORD_BOT_TOKEN)" | jq '.[] | {id, author: .author.username, content}'

6. Get Specific Message

Replace <your-channel-id> and <your-message-id> with the actual IDs:

curl -s "https://discord.com/api/v10/channels/<your-channel-id>/messages/<your-message-id>" -H "Authorization: Bot $(printenv DISCORD_BOT_TOKEN)" | jq '{id, content, author: .author.username}'

7. Delete Message

Replace <your-channel-id> and <your-message-id> with the actual IDs:

curl -s -X DELETE "https://discord.com/api/v10/channels/<your-channel-id>/messages/<your-message-id>" -H "Authorization: Bot $(printenv DISCORD_BOT_TOKEN)"

8. Add Reaction

Replace <your-channel-id> and <your-message-id> with the actual IDs:

curl -s -X PUT "https://discord.com/api/v10/channels/<your-channel-id>/messages/<your-message-id>/reactions/%F0%9F%91%8D/@me" -H "Authorization: Bot $(printenv DISCORD_BOT_TOKEN)" -H "Content-Length: 0"

Note: Emoji must be URL encoded (👍 = %F0%9F%91%8D)


9. Get Guild (Server) Info

Replace <your-guild-id> with the actual guild ID:

curl -s "https://discord.com/api/v10/guilds/<your-guild-id>" -H "Authorization: Bot $(printenv DISCORD_BOT_TOKEN)" | jq '{id, name, member_count, owner_id}'

10. List Guild Channels

Replace <your-guild-id> with the actual guild ID:

curl -s "https://discord.com/api/v10/guilds/<your-guild-id>/channels" -H "Authorization: Bot $(printenv DISCORD_BOT_TOKEN)" | jq '.[] | {id, name, type}'

11. Get Guild Members

Replace <your-guild-id> with the actual guild ID:

curl -s "https://discord.com/api/v10/guilds/<your-guild-id>/members?limit=10" -H "Authorization: Bot $(printenv DISCORD_BOT_TOKEN)" | jq '.[] | {user: .user.username, nick, joined_at}'

12. Get Guild Roles

Replace <your-guild-id> with the actual guild ID:

curl -s "https://discord.com/api/v10/guilds/<your-guild-id>/roles" -H "Authorization: Bot $(printenv DISCORD_BOT_TOKEN)" | jq '.[] | {id, name, color, position}'

13. Create Webhook

Write to /tmp/discord_request.json:

{
  "name": "My Webhook"
}

Then run (replace <your-channel-id> with the actual channel ID):

curl -s -X POST "https://discord.com/api/v10/channels/<your-channel-id>/webhooks" -H "Authorization: Bot $(printenv DISCORD_BOT_TOKEN)" -H "Content-Type: application/json" -d @/tmp/discord_request.json | jq '{id, token, url: "https://discord.com/api/webhooks/\(.id)/\(.token)"}'

14. List Channel Webhooks

Replace <your-channel-id> with the actual channel ID:

curl -s "https://discord.com/api/v10/channels/<your-channel-id>/webhooks" -H "Authorization: Bot $(printenv DISCORD_BOT_TOKEN)" | jq '.[] | {id, name, token}'

15. Create Text Channel

Write to /tmp/discord_request.json:

{
  "name": "new-channel",
  "type": 0
}

Then run (replace <your-guild-id> with the actual guild ID):

curl -s -X POST "https://discord.com/api/v10/guilds/<your-guild-id>/channels" -H "Authorization: Bot $(printenv DISCORD_BOT_TOKEN)" -H "Content-Type: application/json" -d @/tmp/discord_request.json | jq '{id, name}'

Channel Types

TypeDescription
0Text channel
2Voice channel
4Category
5Announcement
13Stage
15Forum

Guidelines

  1. Rate limits: Check X-RateLimit-* headers; implement backoff
  2. Token security: Never expose bot tokens
  3. Permissions: Bot needs appropriate permissions for each action
  4. Intents: Enable required intents in Developer Portal
  5. API version: Use /v10 for latest stable API

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

vm0-agent

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

agentmail

No summary provided by upstream source.

Repository SourceNeeds Review
General

google-sheets

No summary provided by upstream source.

Repository SourceNeeds Review
246-vm0-ai
General

apify

No summary provided by upstream source.

Repository SourceNeeds Review
214-vm0-ai