Discord Message Sentiment
Pricing
$18.00/month + usage
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
Actor stats
0
Bookmarked
1
Total users
1
Monthly active users
a month ago
Last modified
Categories
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 (
newerorolder) - 🚫 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
- Open Developer Tools in your browser (
F12key) and go to discord.com/channels/@me - Click the Network tab and filter for Fetch/XHR
- Refresh the page if needed and look for a request named @me
- Under Request Headers, locate the Authorization field
- Copy the long token string — that’s your Discord Token
⚙️ Input Configuration
The Actor accepts the following input parameters via Apify:
| Key | Type | Description | Default | Required |
|---|---|---|---|---|
guild_id | String | The ID of the Discord server (guild) containing the target channel. | - | ✅ Yes |
channel_id | String | The ID of the channel from which to fetch messages. | - | ✅ Yes |
token | String | Your Discord user account token for authentication. | - | ✅ Yes |
max_messages | Integer | Maximum number of messages to fetch (1–10,000). | 1000 | ❌ No |
start_message_id | String | Optional message ID to start scraping from. | None | ❌ No |
scrape_direction | String | Direction of scrape: "newer" or "older". | newer | ❌ No |
batch_delay_seconds | String | Delay 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.
| Field | Description |
|---|---|
message_id | Unique message ID |
channel_id | Channel ID |
author | Object containing author details (id, username, discriminator, avatar, public_flags) |
content | Text content of the message |
timestamp | UTC timestamp of when the message was created |
edited_timestamp | Timestamp if the message was edited |
type | Discord message type (e.g., default, reply) |
attachments | List of attachments (ID, filename, URL, size, etc.) |
embeds | List of embeds (title, description, URL, thumbnail, etc.) |
pinned | Boolean — whether message is pinned |
mention_everyone | Boolean — whether the message mentions everyone |
tts | Boolean — whether the message was text-to-speech |
flags | Integer — Discord message flags |
components | Array of UI components (e.g., buttons) |
reactions | Array of reactions (emoji details, count, etc.) |
mentions | Array of mentioned users (ID, username, discriminator) |
message_reference | Object containing reply reference data |
sentiment | Object 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"}}
