Discord Message Sentiment avatar
Discord Message Sentiment

Pricing

$18.00/month + usage

Go to Apify Store
Discord Message Sentiment

Discord Message Sentiment

The Discord Message Sentiment Scraper collects message data — including text, embeds, attachments, reactions, and mentions — from any channel and performs real-time sentiment analysis. Perfect for lead generation, data analysis, and marketing.

Pricing

$18.00/month + usage

Rating

0.0

(0)

Developer

Harvest Edge

Harvest Edge

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

a month ago

Last modified

Share

🌽🌽🌽🌽🌽🌽🌽🌽🌽🌽🌽🌽🌽🌽🌽🚜

🌽🌽🌽🌽🌽🌽🌽🌽🌽🌽🌽🌽🌽🌽🌽🌽

Harvest Edge / Discord Message Sentiment

🌱🌱🌱🌱🌱🌱🌱🌱🌱🌱🌱🌱🌱🌱🌱🌱

🌽🌽🌽🌽🍆🌽🌽🌽🌽🚜🌱🌱🌱🌱🌱🌱

Harvest Edge makes business information available to everyone!

🌼 Overview

The Discord Message Sentiment Scraper collects message data — including text, embeds, attachments, reactions, and mentions — and performs real-time sentiment analysis using the VADER Sentiment Analyzer.

This tool is designed for developers, data scientists, and analysts who need structured conversational data for research, analytics, or community insights.
It can scrape messages in either "older" or "newer" directions from a specific message ID, batching data safely to comply with Discord rate limits.


🌾 Features

  • 🧠 Sentiment analysis
  • 📦 Structured output with message metadata, attachments, embeds, and reactions
  • Configurable batch delay to prevent API throttling
  • 🔁 Directional scraping (newer or older)
  • 🚫 Robust error handling with descriptive logs
  • ⚙️ Optimized performance (fetches up to 10,000 messages per run)
  • 💬 Works with Discord user tokens for full message access

🔑 How to Get Your Discord Token

  1. Open Developer Tools in your browser (F12 key) and go to discord.com/channels/@me
  2. Click the Network tab and filter for Fetch/XHR
  3. Refresh the page if needed and look for a request named @me
  4. Under Request Headers, locate the Authorization field
  5. Copy the long token string — that’s your Discord Token

⚙️ Input Configuration

The Actor accepts the following input parameters via Apify:

KeyTypeDescriptionDefaultRequired
guild_idStringThe ID of the Discord server (guild) containing the target channel.-✅ Yes
channel_idStringThe ID of the channel from which to fetch messages.-✅ Yes
tokenStringYour Discord user account token for authentication.-✅ Yes
max_messagesIntegerMaximum number of messages to fetch (1–10,000).1000❌ No
start_message_idStringOptional message ID to start scraping from.None❌ No
scrape_directionStringDirection of scrape: "newer" or "older".newer❌ No
batch_delay_secondsStringDelay between message batches (in seconds, to manage rate limits).1.0❌ No

🧾 Output Structure

Each message is output as a JSON object in your Apify dataset.

FieldDescription
message_idUnique message ID
channel_idChannel ID
authorObject containing author details (id, username, discriminator, avatar, public_flags)
contentText content of the message
timestampUTC timestamp of when the message was created
edited_timestampTimestamp if the message was edited
typeDiscord message type (e.g., default, reply)
attachmentsList of attachments (ID, filename, URL, size, etc.)
embedsList of embeds (title, description, URL, thumbnail, etc.)
pinnedBoolean — whether message is pinned
mention_everyoneBoolean — whether the message mentions everyone
ttsBoolean — whether the message was text-to-speech
flagsInteger — Discord message flags
componentsArray of UI components (e.g., buttons)
reactionsArray of reactions (emoji details, count, etc.)
mentionsArray of mentioned users (ID, username, discriminator)
message_referenceObject containing reply reference data
sentimentObject with sentiment scores (pos, neu, neg, compound, label)

🧠 Example Output

{
"message_id": "123456789012345678",
"channel_id": "987654321098765432",
"author": {
"id": "111222333444555666",
"username": "example_user",
"discriminator": "1234",
"avatar": "https://cdn.discordapp.com/avatars/...png",
"public_flags": 0
},
"content": "This is awesome!",
"timestamp": "2025-10-20 14:30:00",
"edited_timestamp": null,
"attachments": [],
"embeds": [],
"pinned": false,
"mention_everyone": false,
"tts": false,
"flags": 0,
"components": [],
"reactions": [],
"mentions": [],
"message_reference": null,
"sentiment": {
"compound": 0.8316,
"pos": 0.7,
"neu": 0.3,
"neg": 0.0,
"label": "positive"
}
}