Skip to main content
Track Discord channels in real-time. Capture messages, token mentions, and embeds — then backfill historical data on demand.

What You Can Do

CapabilityEndpointDescription
Track ChannelPOST /track/discordMonitor a Discord channel for new messages
Get SourceGET /track/discordRetrieve a tracked Discord source
Delete TrackingDELETE /track/discordStop tracking a Discord source
BackfillPUT /backfill/discordTrigger historical message backfill
HistoryGET /account/historyRetrieve backfilled historical messages

Track a Discord Channel

Start receiving real-time messages from any Discord channel.
curl -X POST https://scrape.st/track/discord \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"sid": "1234567890123456789"}'
Response:
{
  "data": {
    "id": "src_789",
    "source": "DISCORD",
    "externalId": "1234567890123456789",
    "name": "#announcements"
  },
  "message": "Now tracking channel 1234567890123456789 on discord"
}
The sid for Discord is the channel ID (numeric string). You can find this by enabling Developer Mode in Discord, then right-clicking a channel → Copy Channel ID.

Token & Cashtag Monitoring

Scrapest automatically detects token mentions and cashtags in Discord messages — $BTC, $SOL, $ETH, and any custom token symbol. This works the same way as Twitter token search, applied to your tracked Discord sources. Messages containing token references are flagged in the webhook payload for easy filtering.

Backfill History

Retrieve historical messages from tracked Discord channels.
In the examples below, src_789 is the external ID (the Discord channel ID) of the channel whose historical data you want to pull. This is the same externalId returned when you created the tracking via POST /track/discord.
# Trigger backfill for a Discord source
curl -X PUT https://scrape.st/backfill/discord \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"sid": "src_789"}'

# Check backfill status
curl -X GET "https://scrape.st/backfill/status?sid=src_789" \
  -H "x-api-key: YOUR_API_KEY"

# Retrieve historical messages
curl -X GET "https://scrape.st/account/history/discord/src_789?page=1&limit=50" \
  -H "x-api-key: YOUR_API_KEY"

Webhook Payload

When a tracked Discord channel receives a message, your webhook receives a SourceEvent object. This is the exact shape sent via JSON.stringify to your webhook URL:
{
  "mid": "1234567890123456789",
  "sid": "9876543210987654321",
  "source": "discord",
  "timestamp": 1712072400000,
  "payload": {
    "id": "1234567890123456789",
    "channelId": "9876543210987654321",
    "content": "New $ETH listing coming to Uniswap 🔥",
    "author": {
      "id": "111222333444555666",
      "username": "alpha_caller",
      "discriminator": "0001"
    }
  }
}
FieldTypeDescription
midstringMessage ID — the Discord message ID
sidstringSource ID — the Discord channel ID
sourcestring"discord"
timestampnumberUnix timestamp (ms) when the event was received
payloadobjectRaw Discord.js Message object

Delivery Methods

Discord data is delivered through all the same channels as Twitter:
  • Webhooks — Push to your endpoint
  • WebSocket — Real-time bidirectional stream
  • SSE — Server-sent events with auto-reconnect

API Reference

All tracking endpoints use /track/:source where :source is twitter, telegram, or discord.