Discord Server Widget Scraper API
Read a server's public widget: online presence count, voice channels, and a live sample of online members.
Sendguild_id
Returnsnameidposition
What each one takes and what it returns. Open one for a real response, every input and every field.
Read a server's public widget: online presence count, voice channels, and a live sample of online members.
Sendguild_id
Returnsnameidposition
Resolve a Discord invite URL or code into its public server preview: name, description, features, booster tier, and member and online counts.
Sendinvite
Returnsapproximate_member_countapproximate_online_countchannelinvite_codeinvite_urlserver
Decode any Discord snowflake ID into its UTC creation time and internal parts.
Sendid
Returnscreated_atincrementprocess_idtimestamp_msworker_id
One request shape for every Discord endpoint: the endpoint ID and its input. No SDK needed.
curl --request POST \ --url https://data.upscrape.com/execute \ --header "Authorization: Bearer $UPSCRAPE_API_KEY" \ --header "Content-Type: application/json" \ --header "Prefer: wait=30" \ --data '{ "capability": "discord.server.resolve_invite", "input": { "invite": "discord-developers" }}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "discord.server.resolve_invite", "input": { "invite": "discord-developers" }}''')response = requests.post( "https://data.upscrape.com/execute", headers={ "Authorization": f"Bearer {os.environ['UPSCRAPE_API_KEY']}", "Content-Type": "application/json", "Prefer": "wait=30", }, json=payload,)response.raise_for_status()print(json.dumps(response.json(), indent=2))
const response = await fetch("https://data.upscrape.com/execute", { method: "POST", headers: { "Authorization": `Bearer ${process.env.UPSCRAPE_API_KEY}`, "Content-Type": "application/json", "Prefer": "wait=30", }, body: JSON.stringify({ "capability": "discord.server.resolve_invite", "input": { "invite": "discord-developers" }}),});if (!response.ok) { throw new Error(`Upscrape request failed: ${response.status}`);}console.log(JSON.stringify(await response.json(), null, 2));
{ "approximate_member_count": 307686, "approximate_online_count": 70164, "invite_code": "discord-developers", "invite_url": "https://discord.gg/discord-developers", "type": 0, "channel": { "name": "rules", "id": "613430047285706767", "type": 0 }, "server": { "name": "Discord Developers", "created_at": "2019-08-20T17:34:31.544Z", "banner_url": "https://cdn.discordapp.com/banners/613425648685547541/f02442ea4d3d218bbeb15ce12cff0387.png", "description": "Welcome to Discord Developers (DDevs), the official home for the community of developers building apps, bots, games, and more with Discord …", "icon_url": "https://cdn.discordapp.com/icons/613425648685547541/a_1d18823294be0ccfbcdec090c8ffcc0d.gif", "id": "613425648685547541", "nsfw": false, "nsfw_level": 0, "premium_subscription_count": 56, "premium_tier": 3, "splash_url": "https://cdn.discordapp.com/splashes/613425648685547541/56394bca8b4f60282ea833e8703b5fcf.png", "vanity_url_code": "discord-developers", "verification_level": 3, "features": [ "COMMUNITY", "VERIFIED" ] }}
https://data.upscrape.com/mcp
With Upscrape, get the Discord resolve invite for invite "discord-developers". Tell me what it costs before you run it, then show the results as a table.
With Upscrape, get the Discord inspect id for id "175928847299117063". Tell me what it costs before you run it, then show the results as a table.
The short answers. The docs have the long ones.
Server widget, resolve invite and inspect id. Each is its own endpoint with a published input schema, and the response is JSON.
Every Discord endpoint costs 1 credit per successful call. You buy credits once, with no subscription, and paid credits never expire. New accounts get free credits to try it.
No. Upscrape reads the pages Discord shows to any visitor, so you send the input the endpoint asks for and get the data back. Nothing runs on your account, and you share no password or cookie.
Yes. Connect any MCP client to the Upscrape MCP server with OAuth or an API key. The agent finds the Discord endpoint, checks its price and runs it with the same credits as the REST API.
Upscrape reads public pages only and needs no login. How you use the data is yours to decide under the laws that apply to you; we sign a data processing agreement for your legal review.
We fix the endpoint. Your request and the response fields stay the same.
Up to 100 free credits to start, no card needed.