How to find Discord communities for partnerships and market research
Key Takeaways
What data can you get from Discord without joining a server? The Discord server directory at discord.com/servers publishes each listed server's name, description, approximate member count, approximate online count, boost count, tags, categories, language, verified and partnered status, and an invite link. You can read all of it without an account or joining any server.
Which Discord servers can a scraper find? Only servers their owners have published to Discord's public server directory. Private servers, invite-only communities, and servers that never opted into Discovery are not listed, so they cannot be found this way.
What is the best signal for an active Discord community?
The ratio of online members (approximate_presence_count) to total members (approximate_member_count). A 200,000-member server with 3% online is often less valuable for outreach than a 20,000-member server with 25% online.
How much does it cost to scrape Discord servers? The Discord Server Scraper charges per server saved, about $4.99 per 1,000 servers on Apify's free plan at the time of writing and less on paid plans, plus a negligible per-run start fee.
Why Discord server data matters for growth teams
Discord (community chat platform) now hosts the core fan communities for games, creator brands, AI tools, crypto projects, and open-source software. Growth marketers, developer-relations teams, and sponsorship managers use it to find where a target audience gathers, but the in-app Discovery search shows one card at a time with no sorting or export.
The Discord Server Scraper reads the same public directory and returns every match as structured rows. That turns "search Discord for Valorant servers" into a sortable spreadsheet of communities, ranked by size and activity.
| Team | What they look for in Discord data |
|---|---|
| Game studios | Fan servers for competitor titles, community size by genre |
| Creator sponsorship managers | Active communities around a niche to pitch co-marketing |
| DevRel and open-source maintainers | Developer servers where a tool is discussed or could be supported |
| Market researchers | How many communities exist around a topic, and in which languages |
| Agencies | Partnership shortlists for client launches |
Can I see which Discord servers are growing?
Not from a single run. Each run captures member and online counts at that moment. Run the same keyword weekly and compare approximate_member_count per server id to measure growth over time.
How to scrape the Discord server directory by keyword
The scraper takes a list of keywords, an optional directory category, and a result cap. Each keyword is searched separately, so one run can cover a whole niche.
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("parsebird/discord-server-scraper").call(run_input={
"keywords": ["valorant", "fps", "aim training"],
"category": "Gaming",
"maxResults": 500,
"includeServerDetails": True,
})
servers = client.dataset(run["defaultDatasetId"]).list_items().items
The input options, from the actor's schema:
| Input | What it does |
|---|---|
keywords | One directory search per keyword. Leave empty to list the directory itself |
category | Gaming, Entertainment, Education, Science & Tech, or Music. Empty means all five |
maxResults | Total servers to save across the run |
deepKeywordSearch | Also scans the first 3,000+ servers of each category for the keyword in name, description, or tags |
includeServerDetails | Adds about, social_links, and reasons_to_join per server |
deepKeywordSearch matters for niche terms. Discord's own keyword search favors exact name matches, so a server about "aim training" whose name is a brand word can be missed. The deep mode catches it through its tags or description.
Does the scraper need a Discord account or bot token? No. It reads the public server directory that any logged-out visitor can browse. No account, bot, or Discord API token is needed. The Discord developer docs only become relevant if you later want to build a bot for a server you manage.
What the Discord server output looks like
Each row is one server with more than 30 fields. A trimmed, illustrative example:
{
"name": "Example Aim Lab Community",
"description": "Daily aim challenges, VOD reviews, and scrims.",
"approximate_member_count": 48210,
"approximate_presence_count": 9120,
"premium_subscription_count": 14,
"preferred_locale": "en-US",
"primary_category": "Gaming",
"keywords": ["valorant", "aim", "fps", "coaching"],
"is_verified": false,
"is_partnered": true,
"invite_url": "https://discord.gg/example",
"social_links": ["https://twitter.com/example"],
"search_keyword": "aim training"
}
The fields that matter most for prioritizing communities:
approximate_presence_count: members online right now. Divide by member count to get an activity rate.premium_subscription_count: server boosts. Members paying to boost a server is a strong sign of loyalty.is_partneredandis_verified: official or Discord-partnered communities, often run by a brand or a large creator.preferred_locale: the server's language, useful for regional campaigns.social_links: the owner's other channels, which is often the best route for a partnership pitch.
Ranking Discord communities for outreach
Raw member count is a weak ranking signal on Discord because many large servers are dormant. A better score combines size, activity, and loyalty:
function scoreServer(s) {
const members = s.approximate_member_count || 0;
const online = s.approximate_presence_count || 0;
const activity = members ? online / members : 0;
const boosts = s.premium_subscription_count || 0;
return Math.log10(members + 1) * activity * (1 + Math.min(boosts, 14) / 14);
}
const shortlist = servers
.filter((s) => s.approximate_member_count >= 2000)
.sort((a, b) => scoreServer(b) - scoreServer(a))
.slice(0, 50);
Boosts are capped at 14 here because that is where Discord's Level 3 boost tier starts. Beyond it, extra boosts say little more about loyalty.
How do I contact a Discord server owner for a partnership?
Use the social_links field from includeServerDetails first. Most community owners list a Twitter/X, YouTube, or website there, which is a better first contact than a cold message inside the server. Respect each server's rules on self-promotion.
Use cases beyond partnerships
The same dataset supports several research jobs that have nothing to do with outreach:
- Market sizing. Count servers and total members for a keyword ("notion templates", "stable diffusion") to see how big a community niche is.
- Competitor tracking. Find every fan or support server for a competitor's product and monitor member growth weekly.
- Language and regional mapping. Group by
preferred_localeto see which markets have active communities for a topic. - Creator research. Pair Discord community size with SocialBlade growth data to see whether a creator's audience is engaged off-platform.
For scheduling a weekly run and pushing results into a sheet, the Make and Apify workflow guide covers the setup end to end.
FAQ
Is it legal to scrape the Discord server directory? The scraper only reads data Discord publishes in its public, logged-out server directory, and it does not join servers or read messages. Using that data for outreach still has to follow Discord's terms and local privacy and anti-spam laws, so check with your own counsel for commercial use.
Can it read messages or member lists inside a server? No. It collects directory-level metadata only: what a server publishes about itself. Messages, member lists, and channel content are out of scope.
Why do some keywords return fewer servers than expected?
Discord's directory search is narrow and favors name matches. Turn on deepKeywordSearch to also match tags and descriptions across the first 3,000+ servers of each category.
Can I export Discord server data to CSV or Excel? Yes. Like any Apify dataset, results export as JSON, CSV, Excel, or XML from the console or the API.
Browse the Social Media category for more community and creator data tools.