Discord Server Metadata Lookup
Pricing
Pay per event
Discord Server Metadata Lookup
Bulk-resolve Discord server metadata — name, description, icon, verification level, member and presence counts — from invite codes or URLs via Discord's public invite-lookup API. Metadata only: no message history, no member lists, no authenticated access.
Pricing
Pay per event
Rating
0.0
(0)
Developer
DevilScrapes
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 hours ago
Last modified
Categories
Share
🎯 What this scrapes
Discord's public invite-resolution endpoint answers one invite code at a time with real guild metadata — name, description, icon, verification level, approximate member/presence counts — but there's no bulk form and no batch tooling around it. This Actor takes a list of invite codes or URLs (bare code or full discord.gg/discord.com/invite link), resolves each one against Discord's own keyless API, and returns one clean row per input item in order. It's a metadata lookup, not a crawl: no message history, no member rosters, no authenticated Discord API calls of any kind.
🔥 What we handle for you
- 🔍 Local format validation, free — every invite code or URL is normalized and validated before any network call, so a malformed entry never costs you a billed row.
- 🔁 Retries with exponential backoff on 408 / 429 / 5xx — up to 5 attempts, Discord's own retry_after and the Retry-After header both honoured.
- 🫠 One bad invite never fails the run — an expired, invalid, or unreachable invite is logged and rowed as not_found/transport_error; the rest of your list still ships.
- 🧊 Clean, typed dataset rows — Pydantic-validated, stable fields, JSON / CSV / Excel export straight from the Apify Console.
- 💰 Pay-Per-Event pricing — you only pay for invite codes that resolve to a real server. Invalid, not-found, and failed lookups are free.
💡 Use cases
- Track a competitor's Discord community size and growth over time from a list of invite links.
- Enrich a server directory or Web3/gaming project database with live member/presence counts and verification level.
- Screen a list of partner or sponsor Discord servers for legitimacy signals before outreach.
- Feed a growth-marketing dashboard with server metadata pulled from links shared across social channels.
⚙️ How to use it
- Click Try for free at the top of the page.
- Fill in the input form — most fields have sensible defaults.
- Click Start. Output streams into the run's dataset.
- Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.
📥 Input
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
invite_codes_or_urls | array | yes | ['python', 'discord-developers', 'reactiflux'] | Discord invite codes or URLs to resolve, 1-500 per run — bare code (python) or full URL (https://discord.gg/python,… |
proxyConfiguration | object | no | {'useApifyProxy': False} | Discord's public invite-resolution endpoint is a keyless API with no anti-bot surface observed. Leave this off unless… |
Example input
{"invite_codes_or_urls": ["python","discord-developers","reactiflux"],"proxyConfiguration": {"useApifyProxy": false}}
📤 Output
Every row is one dataset item.
| Field | Type | Notes |
|---|---|---|
input_value | string | Raw input list item, verbatim. |
invite_code | string | Locally normalized code (extracted from a URL, or the trimmed bare code). |
is_valid_input | boolean | Local code-format validation result. |
lookup_status | string | Outcome of this row. |
error_reason | string | Human-readable reason when lookup_status is not 'resolved'; null on success. |
guild_id | string | Discord guild (server) id. |
guild_name | string | Discord guild (server) name. |
guild_description | string | Guild's own description text, when set. |
guild_icon_hash | string | Raw guild icon hash from Discord's API. |
guild_icon_url | string | Constructed CDN icon URL — .gif when the hash is 'a_'-prefixed, else .png; null when the guild has no icon. |
verification_level | integer | Guild's verification level, as returned by Discord. |
vanity_url_code | string | Guild's vanity invite code, when the server has one. |
approximate_member_count | integer | Approximate total member count. |
approximate_presence_count | integer | Approximate currently-online member count. |
invite_expires_at | string | Invite expiry timestamp, when Discord includes one. |
inviter_username | string | Username of the invite's creator, when Discord includes an inviter (many invites omit it). |
channel_id | string | Id of the channel the invite lands in. |
channel_name | string | Name of the channel the invite lands in. |
channel_type | integer | Discord channel-type code for the invite's target channel. |
looked_up_at | string | ISO-8601 timestamp when this row was resolved. |
Example output
{"input_value": "https://discord.gg/python","invite_code": "python","is_valid_input": true,"lookup_status": "resolved","error_reason": null,"guild_id": "192485424653418496","guild_name": "Python Discord","guild_description": "The number one place on Discord for Python programmers.","guild_icon_hash": "5cf0526...","guild_icon_url": "https://cdn.discordapp.com/icons/192485424653418496/5cf0526....png","verification_level": 3,"vanity_url_code": "python","approximate_member_count": 431208,"approximate_presence_count": 76485,"invite_expires_at": null,"inviter_username": null,"channel_id": "267624335836053506","channel_name": "welcome","channel_type": 0,"looked_up_at": "2026-09-15T00:00:00Z"}
💰 Pricing
Pay-Per-Event — you pay only when these events fire:
| Event | USD | What it is |
|---|---|---|
actor-start | $0.2 | One-off warm-up charge per run |
result-row | $0.005 | Per unique dataset item |
Example: 1 000 results at the rates above ≈ $5.20. No subscription, no minimum, no card to start — Apify gives every new account $5 of free credit.
🚧 Limitations
- Up to 500 invite codes/URLs per run, one lookup per item — there's no batch form on Discord's own endpoint.
- Only servers reachable through a live, unexpired invite code can be looked up — there's no server-directory search or discovery of codes you don't already have.
- Member-level data (rosters, roles, permissions) and channel contents (messages, threads, pins) are never returned — Discord's invite endpoint doesn't expose them.
- inviter_username is frequently null — many servers configure invites without an exposed creator.
❓ FAQ
Do I need a bot token or Discord login?
No. This Actor uses only Discord's public, keyless invite-resolution endpoint — no OAuth, no bot token, no login.
Does this scrape messages or member lists?
No. It returns aggregate server metadata only — name, description, icon, verification level, approximate member/presence counts. Discord's invite endpoint never exposes message history or a member roster, and this Actor doesn't use any authenticated API that would.
What if an invite code is expired or invalid?
It comes back as a normal row with lookup_status set to not_found or invalid_input and a short error_reason — the run still succeeds, and that row is never billed.
Can I pass a full discord.gg link instead of just the code?
Yes. Both discord.gg/ and discord.com/invite/ links are parsed locally into the bare code before any network call — paste whichever form you have.
[object Object]