Discord Profiles Scraper | Users, Badges and Server Tags avatar

Discord Profiles Scraper | Users, Badges and Server Tags

Pricing

from $3.39 / 1,000 profiles

Go to Apify Store
Discord Profiles Scraper | Users, Badges and Server Tags

Discord Profiles Scraper | Users, Badges and Server Tags

Discord profiles scraper: find the people behind public Discord servers from one keyword. Get username, display name, avatar, banner, badges, server tag, account creation date and the server they invite to, with its member count. 10 profiles in 26 seconds, 26 fields each. No Discord account needed.

Pricing

from $3.39 / 1,000 profiles

Rating

0.0

(0)

Developer

SilentFlow

SilentFlow

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Discord Profiles Scraper | Users, Badges and Server Tags (2026)

Discord profiles, 26 fields each, from any keyword.

From SilentFlow. Creators of Facebook Search Scraper and Pinterest Scraper, with 590,000+ combined lifetime runs.

Find the people behind public Discord servers: the account that created each server's invite link, with username, display name, avatar, banner, badges, server tag and account creation date, next to the server it invites to and that server's member count. Our test run returned 100 unique profiles from 100 different Minecraft servers for the keyword minecraft, the first 10 in under 40 seconds, with no Discord account.

Why choose this actor?

Looking for the admin of a Discord community you want to partner with, and finding only a "Join" button? Joining server after server to read a member list? Handed a list of invite links and asked who made them?

  • 17 fields on every profile, not 11. In our runs for minecraft (10 and 100 profiles), every row carried 17 data fields: the user ID and profile link, username, display name, avatar, account creation date, badge flags, and the server with its name, icon, member and online counts and the invite itself. The example row of the most used Discord user search actor has 11 fields. On the 100-profile run, 20 of the 27 data fields reached at least half the rows, and on top 42 people showed a server tag, 52 at least one badge, 38 a nameplate.
  • Three ways in: a keyword, an invite link or a server ID. The most used Discord user search actor takes keywords only. Here you can also paste invite links (discord.gg/...) to learn who created each one, or Discord server IDs to get the person behind each server, and browse a whole category on top. In our test, three invite links, two server IDs and one category page in the same form gave 20 profiles in 13 seconds.
  • Nothing to fill before you start. No field is required: the form comes prefilled with a keyword that returns rows, and an empty form reads up to 480 listed servers of every category. The most used Discord user search actor requires at least one keyword before it runs.

Try Discord Profiles Scraper

Try your first 10 profiles

Paste this input in the JSON tab of the Input page and press Start. It searches Discord's server directory for minecraft, then the servers similar to the ones found whose name or description says Minecraft, and returns the person who created each server's invite link, until it has 10 different people. In our tests it took 23 to 36 seconds.

{
"keywords": ["minecraft"],
"maxItems": 10
}

Raise maxItems to 100 for a full outreach list: our 100-profile run took about four and a half minutes. It runs on the Apify Free plan. Each person becomes one row of your dataset: open the Output tab to see the table with avatars, usernames, server tags and the servers they invite to, or export the rows as JSON, CSV or Excel.

How it works

SilentFlow · Discord suite
  Discord Scraper
Servers, Member Counts and
Discord Profiles Scraper
You are here

Copy to your AI assistant

Paste this block into Claude, ChatGPT or Cursor to give it the full picture of this scraper:

You have access to the Discord Profiles Scraper on Apify: silentflow/discord-profiles-scraper
It finds the people behind public Discord servers without any Discord account: for each server it reads the
public invite link and returns the profile of the account that created it, with the server it invites to.
One row per person; a person found through several servers is returned once.
Input schema (no field is required; with nothing filled in, up to 480 listed servers of every category are read):
- keywords (array of strings): topics such as "minecraft", "valorant", "python", "crypto". Searched in
Discord's server directory, then in similar servers whose name or description carries every word.
- startUrls (array of strings): invite links or codes (https://discord.gg/abc123, discord.com/invite/abc123,
abc123), Discord directory server pages (https://discord.com/servers/name-123456789012345678),
GuildSeek server or category pages (https://guildseek.com/server/name, https://guildseek.com/servers/ai/page/1).
An invite link you paste is resolved whoever created it, person or bot.
- serverIds (array of strings): Discord server ids of 17 to 20 digits.
- category (string, default ""): one of 47 topics (ai, anime, art, business, crypto, gaming, programming,
technology, ...). Reads up to 480 listed servers of that topic.
- maxItems (integer, default 100, 10 in the form): max profiles for the whole run. A person is returned once.
- debugMode (boolean, default false).
Output per profile (30 fields, null when absent):
- id (string, Discord user id), url (string, https://discord.com/users/{id}), username (string),
displayName (string, the name Discord shows), discriminator (string, "0" for new usernames), isBot (boolean)
- badges (array of strings, e.g. "HypeSquad Balance", "Early Supporter", "Active Developer"),
publicFlags (integer), clanTag (string, the server tag shown next to the name), clanBadge (string, image url),
clanServerId (string), accentColor (string, hex), bannerColor (string, hex)
- createdAt (string, RFC 3339 UTC, account creation)
- avatarUrl, bannerUrl, avatarDecorationUrl, nameplateUrl (strings, image urls)
- serverId, serverName (strings), serverMemberCount, serverOnlineCount (integers), serverIconUrl (string)
- inviteCode, inviteUrl, inviteChannel (strings), inviteExpiresAt (string, RFC 3339 UTC, null if permanent)
- foundBy (string: keyword, category, listing, url, invite, serverId), keyword (string), scrapedAt (RFC 3339)
Use apify-client for Python or JavaScript: client.actor("silentflow/discord-profiles-scraper").call(run_input=...).

How to scrape Discord profiles

Three inputs, from the simplest to the most complete. Each one runs as is.

Find the people behind Minecraft servers

{
"keywords": ["minecraft"],
"maxItems": 50
}

The prefilled search. Each row is a person who created an invite link for a Minecraft community, with that community's name, members and online count, so you can sort your outreach list by audience.

List the people behind every programming server

{
"category": "programming",
"maxItems": 30
}

A whole category of listed servers, read page after page. In our test, 30 profiles came back in 39 seconds from 43 programming servers: most servers in this category show an invite link made by a person.

{
"startUrls": [
"https://discord.gg/HyjZKPgEFq",
"discord.gg/JeKhkr22R7",
"https://discord.gg/python"
],
"serverIds": ["1407429443852566688", "572675322420658196"],
"maxItems": 20
}

Each invite link gives the account that created it; each server ID gives the person behind that server's public invite. The custom link discord.gg/python names no creator: the log says so and it gives no row.

Input parameters

ParameterTypeDefaultDescription
keywordsarray of strings["minecraft"] in the formTopics to find servers about. Each keyword is searched in Discord's server directory, then in similar servers whose name or description carries every word of it.
startUrlsarray of stringsnoneInvite links or codes, Discord directory server pages, GuildSeek server or category pages.
serverIdsarray of stringsnoneDiscord server IDs of 17 to 20 digits. One row for the person behind each server's public invite.
categorystring"" (None)One of 47 topics of listed servers, from AI to YouTubers. Reads up to 480 servers of the topic.
maxItemsinteger100 (10 in the form)Maximum profiles for the whole run, across all inputs. A person found twice is saved once.
debugModebooleanfalseDetailed logs, only useful when something looks wrong.

Accepted formats.

  • Keywords: one or more words, any case, accents ignored (minecraft, minecraft survival, pokémon). A keyword that is also a category name (crypto, anime, programming) reads that category too.
  • Invite links: https://discord.gg/abc123, discord.gg/abc123, https://discord.com/invite/abc123, or the bare code abc123.
  • Discord directory pages: https://discord.com/servers/name-123456789012345678 (a server) or https://discord.com/servers?query=rpg (a search, read like a keyword).
  • GuildSeek pages: https://guildseek.com/server/name or https://guildseek.com/server/123456789012345678 (a server), https://guildseek.com/servers/programming/page/1 or https://guildseek.com/servers/active/crypto/page/1 (a category, read from that page on).
  • Server IDs: the number at the end of a Discord directory link, or the one Discord copies with "Copy Server ID" in developer mode.

A link that is none of these is skipped and named in the log. When you fill several inputs, the invite links, server pages and server IDs are read first, then the category pages and searches.

What data can you extract from Discord?

Each row is one person, flat, with the same 30 fields every time and null where Discord gives no value.

GroupFields
Identity (6)id, url, username, displayName, discriminator, isBot
Profile (7)badges, publicFlags, clanTag, clanBadge, clanServerId, accentColor, bannerColor
Time (1)createdAt
Media (4)avatarUrl, bannerUrl, avatarDecorationUrl, nameplateUrl
Server (9)serverId, serverName, serverMemberCount, serverOnlineCount, serverIconUrl, inviteCode, inviteUrl, inviteChannel, inviteExpiresAt
Meta (3)foundBy, keyword, scrapedAt

id is the Discord user ID, which never changes, and url the profile link built from it: open it in a browser where you are logged in to Discord to see the profile. username is the unique handle, displayName the name Discord shows in chats, which is the username when the person set no other name (90 of 100 rows in our test had a distinct display name). createdAt is the day the account was created, read from the ID, in RFC 3339 UTC: in our test the accounts ranged from 2015 to 2025, and 40 of 100 were created before 2020.

badges names the profile badges Discord shows publicly: HypeSquad Bravery, Brilliance or Balance, Early Supporter, Bug Hunter, Active Developer, Moderator Programs Alumni, Partnered Server Owner and the others, decoded from publicFlags. clanTag is the server tag a person chose to show next to their name (a few letters, such as ATM), clanBadge its small badge image and clanServerId the server it belongs to. accentColor and bannerColor are the profile colors, in hex.

The server fields describe the server whose invite led to the person: its ID, name, member count and number of members online at the time of the run, its icon, and the invite itself with the channel it opens on. inviteExpiresAt is null for a permanent invite and a date for a temporary one. In our test the 100 profiles came from 100 different servers, with a median of 630 members; 46 servers had 1,000 members or more and 26 had 10,000 or more.

avatarUrl, bannerUrl, avatarDecorationUrl and nameplateUrl are Discord image links. A person without an avatar gets the default avatar Discord draws for them. These links stay valid until the person changes the image.

Output example

{
"id": "132217453022412801",
"url": "https://discord.com/users/132217453022412801",
"username": "whatthedrunk",
"displayName": "whatthedrunk",
"discriminator": "0",
"isBot": false,
"badges": ["HypeSquad Balance"],
"publicFlags": 256,
"clanTag": "ATM",
"clanBadge": "https://cdn.discordapp.com/clan-badges/254530689225981953/86999d2938d3744cc33c80dceeb5af80.png",
"clanServerId": "254530689225981953",
"accentColor": "#f57200",
"bannerColor": "#f57200",
"createdAt": "2015-12-31T20:24:57Z",
"avatarUrl": "https://cdn.discordapp.com/avatars/132217453022412801/08bc7fb7903853f0e24439ebf34dad8d.png?size=512",
"bannerUrl": "https://cdn.discordapp.com/banners/132217453022412801/deb97900dad1c0a6db5e2fe9e4f7cf73.png?size=1024",
"avatarDecorationUrl": null,
"nameplateUrl": "https://cdn.discordapp.com/assets/collectibles/nameplates/nameplates/cat_beans/static.png",
"serverId": "254530689225981953",
"serverName": "All The Mods - Modded Minecraft",
"serverMemberCount": 178903,
"serverOnlineCount": 49325,
"serverIconUrl": "https://cdn.discordapp.com/icons/254530689225981953/f7648499021dbc638184b5a125a9a335.png?size=256",
"inviteCode": "3paFjuRfz9",
"inviteUrl": "https://discord.gg/3paFjuRfz9",
"inviteChannel": "welcome",
"inviteExpiresAt": null,
"foundBy": "keyword",
"keyword": "minecraft",
"scrapedAt": "2026-10-23T03:35:23Z"
}

Advanced usage

Build a partnership list across several games

{
"keywords": ["minecraft", "roblox", "valorant", "fortnite"],
"maxItems": 400
}

Each keyword is searched in turn and the cap counts all of them together. A person who runs servers in two games appears once, with the first server found. Sort the dataset by serverMemberCount to start with the biggest audiences.

{
"startUrls": [
"https://discord.gg/HyjZKPgEFq",
"https://discord.gg/JeKhkr22R7",
"https://discord.gg/KDbaK8y4ef"
],
"maxItems": 50
}

For trust and safety work: each link gives the account that made it, its creation date and its badges, and the server it opens. Links made by a bot are returned too, with isBot set to true, since you asked for them by name. An expired link or a custom link names nobody and is listed in the log.

Map the people behind a whole category

{
"category": "crypto",
"maxItems": 480
}

Reads the Crypto category of listed servers, in its default order and then by recent activity, up to 480 servers. Servers marked age-restricted are left out of category and keyword results; an invite link or a server ID you name is always read.

Get the person behind each server of your own list

{
"serverIds": ["1407429443852566688", "572675322420658196", "254530689225981953"],
"maxItems": 10
}

When you already have Discord server IDs, from a partner sheet or from the Discord Scraper, each one gives the person who created the server's public invite. A server that is not listed, or whose public link is a custom one or was made by a bot, gives no row and is named in the log.

Refresh your list every week

{
"keywords": ["minecraft"],
"category": "gaming",
"maxItems": 300
}

Schedule this input weekly in Apify Schedules and compare runs on id: new people appear, server tags and display names change, and serverMemberCount shows which communities grow. Each row carries scrapedAt, so every snapshot is dated.

FAQ

What is a Discord profile here? The public profile of a Discord account, as Discord itself shows it to anyone: user ID, username, display name, avatar, banner, profile colors, badges, server tag, avatar decoration and nameplate, and the account creation date. Each row adds the server the person was found through, with its member and online counts.

Who is the person behind a server? The account that created the server's invite link shown publicly. It is often the owner or an admin, and sometimes a moderator or a member allowed to make invites. The row tells you which server and which channel the invite opens, so you know the context before you reach out.

Do I need a Discord account or token? No. The actor reads public information only and never logs in. You do not paste a token or a password anywhere.

Why do the biggest servers rarely appear? Large servers usually share a custom link such as discord.gg/python, and a custom link names no creator. Listing sites also make links with their own bots for servers added recently. Those servers give no row and are counted in the run log. That is why most rows come from small and mid-size communities: in our test, the median server had 630 members.

How many profiles can I get, and how long does it take? As many as you set in Max profiles. A keyword reaches the servers of Discord's directory for it, then keeps going through similar servers that carry the keyword: minecraft reached its cap of 100 people in our test. A category reads up to 480 servers. In our tests, 30 programming profiles took 39 seconds and 100 Minecraft profiles about four and a half minutes, as about half of the servers checked show an invite made by a person.

Can I combine keywords, links, IDs and a category? Yes. They all run in the same input and the cap counts them together: named invites, server pages and IDs first, then searches and the category. A person found twice is saved once.

How fresh is the data? Every value is read at run time: profiles, member counts and online counts are live, and each row carries scrapedAt. Schedule the run to follow changes over time.

Can I get an email address or a phone number? No. Discord does not show them publicly and this actor returns only what any visitor can see. Contact people on Discord through their profile link or their server.

What is a server tag? A short tag of a few characters that a person can display next to their name, chosen from a server they are in. clanTag holds the text, clanBadge the small badge image and clanServerId the server that owns the tag. In our test, 42 of 100 people showed one.

Are the links permanent? id and url never change. The image links (avatar, banner, decoration, nameplate, server icon) stay valid until the person or the server changes the image. Invite links can expire or be removed by the server; inviteExpiresAt gives the date for temporary ones.

More SilentFlow scrapers

🛒 E-commerce

💼 Jobs

🏠 Real estate

📣 Social media

🏢 Business data

✈️ Travel

🎯 Lead generation

🔎 SEO

📈 Marketing

🎬 Video

📰 News

🧰 More tools

Support

Need something this scraper doesn't do yet? We ship features fast.

  • Feature requests go straight to our backlog
  • Enterprise needs? We do custom integrations and high-volume plans
  • Pricing questions? Check the Monetization tab on the actor page

Response time: usually under 24 hours.

This Actor extracts publicly available data from Discord (discord.com) and public server listings. It does not bypass any login, paywall or CAPTCHA, and never uses a Discord account. The output contains personal data: usernames, display names, avatars and other public profile details of Discord users. Users are responsible for handling it in line with Discord's terms of service and applicable data protection laws, including GDPR, CCPA and PIPL where relevant: have a lawful basis for processing, keep only what you need, and honour opt-out and deletion requests. The data returned is informational; check it before using it for a regulated purpose.

Discord Profiles Scraper by SilentFlow: the people behind Discord communities, with their badges, server tags and servers, ready for your outreach list.