Discord Public Server Scraper avatar

Discord Public Server Scraper

Pricing

$1.99 / actor start

Go to Apify Store
Discord Public Server Scraper

Discord Public Server Scraper

Search the official public Discord server directory and retrieve read-only public invite guild metadata.

Pricing

$1.99 / actor start

Rating

0.0

(0)

Developer

Gitlab

Gitlab

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Security

Limited permissions

Share

Search Discord's official public server directory and look up read-only public invite metadata. This Actor returns public guild names, descriptions, approximate member/online counts, boost metadata, categories, keywords, features, images and source provenance when published.

Input

{"query":"gaming","maxItems":10,"proxyConfiguration":{"useApifyProxy":false}}

query searches the current public website. searchQuery is a legacy alias used only when query is omitted. The editor prefills gaming and maxItems: 10. Programmatic empty input defaults to gaming. The integer limit must be 1–500.

For invite-only mode, omit both query fields or explicitly set query to an empty string:

{"query":"","inviteCodes":["midjourney","https://discord.gg/python"],"maxItems":10}

Only bare invite codes and HTTPS discord.gg/<code> or discord.com/invite/<code> URLs are accepted. Tracking query strings are discarded. When both inputs are supplied, search results are saved first, then remaining invite inputs until the same global limit is reached. Guild IDs are deduplicated across modes. Fewer results are returned if the source publishes fewer matches or invites expire.

Sources and fields

The Actor reads the official public directory, including the actual search input, pagination links and each matching public guild profile. Profile pages supply metadata omitted from keyword cards. Category IDs are matched against names published in the live directory and the profile's category links. It decodes only literal serialized data using an AST allowlist; source scripts are never evaluated. Public invite enrichment uses the documented Get Invite endpoint with with_counts=true. The old Discovery Search API is no longer used.

memberCount and onlineMemberCount prefer a matching public invite response when available, then the matching public profile, then the search card. directoryMemberCount, directoryOnlineMemberCount, directoryBoostCount, listingName, and directoryFeatures retain the distinct search card values. profileMemberCount, profileOnlineMemberCount and profileBoostCount retain profile values separately. Directory counts can lag: the website states member counts may be seven days old and online counts six hours old. All counts are approximate.

boostCount and its compatibility alias premiumSubscriptions represent actual premium_subscription_count. boostLevel is the actual premium_tier, never inferred from boost count. Primary category follows the source's primary category ID and the same live directory's category ID/name metadata. categories includes known source category names and the public profile's displayed category labels; profileDisplayedCategories preserves those visible labels separately. Unmapped category IDs are retained with a null name in categoryDetails. Icons already published as full URLs remain intact; hash-based icon/banner/splash URLs follow Discord's documented CDN paths.

Unavailable fields remain null. Public invite responses often omit directory categories, keywords, locale, emoji/sticker arrays, and some images. Empty emoji/sticker counts are zero only when the source supplies an actual empty array. An invite code is kept separately from a guild's published vanity code. The Actor does not join servers, accept invitations, read member lists or private messages, or request account credentials.

Evidence and access limits

The default key-value store retains directory_* HTML, parsed data and access/query evidence, plus invite_* sanitized guild/count responses. Inviter, channel and target-user details are discarded. Each dataset row has source URLs, input mode, snapshot/provenance fields and extraction timestamps.

Optional proxyConfiguration applies to both sources. Verification prompts stop further requests. HTTP 401/403/429 stops further source work, preserves already saved public records, and records the access limitation. Expired or unavailable invites do not produce placeholder records.

Local use

Install the locked dependencies with npm ci, then run apify run --input-file input.json. Local datasets and key-value evidence stay in local storage. No deployment is required for this check.