OrbTop

Discord Member Scraper

LEAD GENERATIONSOCIAL MEDIA

Discord Member Scraper

Scrape member lists from Discord servers. Extract usernames, roles, join dates, nicknames, and profile data using your Discord token.

What it does

This actor connects to the Discord REST API using your user or bot token and extracts member data from a specified server (guild). It resolves role IDs to human-readable names and supports filtering by role, join date, and bot status.

How it works

  1. Fetches guild metadata (name, roles) for role name resolution
  2. Tries the standard /guilds/{id}/members endpoint (works with bot tokens that have GUILD_MEMBERS intent)
  3. Falls back to /guilds/{id}/members-search (works with user tokens) if the standard endpoint returns 403
  4. Applies filters (role, join date range, bot exclusion) and saves matching members
  5. Paginated using cursor-based pagination for both endpoints

Input

Field Type Description
token string Required. Your Discord user or bot token
guildId string Required. Discord server ID (numeric)
maxItems integer Maximum members to scrape (0 = all, default: 100)
excludeBots boolean Skip bot accounts (default: true)
filterRoles array Only include members with one of these role names
joinedAfter string ISO 8601 date filter (e.g., 2024-01-01)
joinedBefore string ISO 8601 date filter (e.g., 2025-01-01)

How to find your Discord server ID

  1. Open Discord Settings > Advanced > Enable "Developer Mode"
  2. Right-click the server icon in the sidebar
  3. Click "Copy Server ID"

Token types

  • User token: Works with the members-search fallback. Find it in browser DevTools under the Authorization header when making Discord requests.
  • Bot token: Requires GUILD_MEMBERS privileged intent enabled in the Discord Developer Portal. Uses the standard members endpoint for faster pagination (up to 1000 members per request).

Output

Each record contains:

Field Description
user_id Discord user ID (snowflake)
username Discord username
global_name Display name
discriminator Legacy discriminator (mostly 0)
avatar_url User avatar URL
nick Server-specific nickname
roles Comma-separated role names
role_ids Comma-separated role IDs
joined_at ISO 8601 join date
premium_since Nitro boost date (null if not boosting)
is_bot Whether the user is a bot
flags Public user flags bitmask
guild_id Server ID
guild_name Server name

Example output

{
  "user_id": "123456789012345678",
  "username": "exampleuser",
  "global_name": "Example User",
  "discriminator": "0",
  "avatar_url": "https://cdn.discordapp.com/avatars/123456789012345678/abc123.png",
  "nick": "ExUser",
  "roles": "Moderator, Developer",
  "role_ids": "111111111111, 222222222222",
  "joined_at": "2024-03-15T10:30:00.000000+00:00",
  "premium_since": null,
  "is_bot": false,
  "flags": 0,
  "guild_id": "987654321098765432",
  "guild_name": "My Server"
}

Pricing

Pay per event:

  • $0.10 per actor start
  • $0.001 per member extracted

No subscription required.

Limitations

  • Discord API rate limits apply (~1 request/second for user tokens)
  • User tokens may not access all guilds' member lists (depends on server permissions)
  • The members-search endpoint requires a brief index warmup on first use per guild
  • Using user tokens may violate Discord's Terms of Service -- use at your own risk

Which Discord actor do I need?

  • Want to scrape the member list of a server? You're in the right place -- keep reading.
  • Want to scrape messages from a channel, forum, or whole guild? Use Discord Message Scraper -- pulls messages from text channels, forum threads, or every channel in a guild with cursor-based resume.
  • Want to find Discord servers in a niche (no token needed)? Use Discord Server Directory Scraper -- pulls public server listings from discord.com/servers, discord.me, and top.gg.