All platforms17 Discord endpoints

Discord API. Servers, games and apps as JSON.

Invites, public server pages, directory search, trending games, applications, templates, widgets and announcements. One envelope, typed lookup status, cursor paging.

No credit card requiredRead the API docs
  • 17 routes
  • Typed lookupStatus
  • 1 credit per request
  • Failed requests aren't charged
99.8% uptime#3 Product of the Day3,200+ developers

Teams running monitoring, research, and enrichment pipelines

Discord data as JSON. You build the product.

Live Discord data in one response shape, with platform changes handled for you.

Discord, plus every other platform

One key and one response envelope for Discord and 56 more platforms.

Pricing you can reason about

One request, one credit. Know how far your balance will go before you run your next batch.

Live data on every request

Fetch public data when you ask for it.

Nothing to maintain

We handle platform changes and breakages.

Built for production jobs

Run concurrent workloads with explicit statuses and request IDs.

Regular jobs. Better rates.

Running lookups every month? Get lower per-credit rates with a monthly plan. For occasional projects, choose pay as you go.

Never expires

What Discord data can you get?

17 endpoints, one API key. Every response comes back as live JSON in the same envelope.

Browse all 17 Discord endpoints
Use cases

What teams build with Discord data

Monitoring, enrichment, research and content workflows on Discord data, on the same API as every other platform.

What you can build

Research communities

Read public server pages, directory results and widgets.

Track trending games

Follow the weekly trending games and announcement posts.

How it works

Your first request in three steps.

Use TypeScript or your automation tool of choice.

Sources

+ 51 more platforms

One request

Social Fetch API

GET/v1/tiktok/profiles/charlidamelio

x-api-key: sk_live_••••••••

1 request · 1 credit

Same JSON shape

response.json200 OK
{
  "data": {
    "lookupStatus": "found",
    "profile": {
      "platform": "tiktok",
      "handle": "charlidamelio",
      "displayName": "charli d’amelio",
      "verified": true
    },
    "metrics": {
      "followers": 160263648
    }
  }
}
  1. Step 1

    Create your free account

    Get an API key with 100 requests included.

  2. Step 2

    Choose an endpoint

    Pass a username, URL, keyword, or post ID.

  3. Step 3

    Get clean JSON

    Use the response immediately or send it into your pipeline.

Works with your stack

Code, automate, or connect your AI.

Explore integrations

Pricing

Social data, priced simply.

Start with 100 free credits. Monthly plans give you predictable volume and lower per-request rates.

Starter

$29.00

18,000credits

  • Top up from $1.61 / 1k if you run out
  • Up to 25 monitors
Most popular

Growth

$79.00

50,000credits

  • Top up from $1.58 / 1k if you run out
  • 5 team seats
  • Up to 100 monitors

Scale

$225.00

150,000credits

  • Top up from $1.50 / 1k if you run out
  • 25 team seats
  • Up to 250 monitors
  • Cancel anytime
  • 30-day money-back guarantee
  • Price locked while you stay

Need 1M+ credits, invoicing, or volume rates? Talk to us

Trust signals

DevHunt

Product Hunt

Uneed

Customers

Teams building on Social Fetch.

“Our TikTok and Instagram scrapers broke constantly. Social Fetch took us off that rotation — we ship product again.”

Daniel Reeve · Founder, Social Crow
  • “Transcripts at volume from one endpoint. No broken scrapers for our small team to maintain.”

    Marcus Lin · Founder, Voice Gecko
  • “Live profile data on every request. We never flag accounts from a stale cache.”

    Hannah Webb · Founder, Scam Finder
  • “Heavy concurrent load, no rate limits to negotiate. The rare API I haven't wrapped in retries.”

    Owen Pritchard · Founder, IP Flare

Discord API: common questions

Is there a Discord API for public server data?

Yes. Social Fetch has seventeen routes under /v1/discord: invite, server page, server widget, directory browse, directory search, server index, game index, application index, announcement index, trending games, game page, application, similar applications, application collections, template, announcement channel, and announcement post. Authenticate with your Social Fetch API key in x-api-key.

How do I look up an invite?

Call GET /v1/discord/invites/{code} with the code from a discord.gg link. Vanity codes are case-insensitive; temporary codes are case-sensitive. A found response includes the invite type, expiry, the landing channel, and the server with its live members and online counts, boosts, tag and traits.

What does lookupStatus mean?

found means the item was returned. not_found means Discord says it does not exist, or the id has no public page. restricted means the item exists but is not public, which is the normal answer for a server widget that its owner has switched off. HTTP 200 only means the request finished, so always branch on lookupStatus.

How deep can I page the directory and search?

Browse returns 12 servers a page and stops at the directory's 3,000-row depth, with limitReached true when the walk reaches it. The directory reorders between requests, so numbered pages can repeat servers; follow page.nextCursor to skip ones already returned. Search returns up to 12 results a page on pages 1 to 6, and limitReached is true on page 6 when more rows were reported than those pages returned. A numbered page past 6 is a 400. Follow page.nextCursor while page.hasMore is true.

How do I enumerate every server id?

Call GET /v1/discord/servers/index. It returns 500 ids and their slugs a page, up to 200 pages, and reports generatedAt, totalIds and limitReached. Game and application ids come from GET /v1/discord/games/index and GET /v1/discord/applications/index, and announcement channel and post ids from GET /v1/discord/announcements/index.

Why is a widget restricted?

A server owner can switch the public widget off. The widget route then returns lookupStatus restricted with that server id, not an error. The server route accepts include=widget to add the same summary, and a disabled widget is reported there as enabled false.

Can I get every announcement from a channel?

GET /v1/discord/announcement-channels/{channelId} returns the latest public posts, newest first, with text, attachments and reactions. The page carries truncated: true because no working cursor was found, so use the single-post route with a message id when you need a specific post.

What game and application data is available?

The trending route lists ten games for a published week, optionally by category. A game page carries genres, platforms, publishers, links, media, trailers, review scores and the official server. Application records include tags, verification, the install link, slug, subscription SKU, the bot user with its banner, and, when the app is in the directory, its categories, install count and support server.

How do I page similar applications?

Add page, or follow page.nextCursor while page.hasMore is true. The response also reports numPages, so you can see how many pages Discord reports. Use the collections route for curated groups of applications.

Can I use the Discord routes from agents or MCP?

Yes. Every Discord route is a typed MCP tool and is reachable through Ask (POST /v1/ask) in plain English. Use the typed routes for production jobs.

The Discord API in detailHow the Discord routes work, what they cost, and how they differ from the official API.

Why teams use Social Fetch for Discord

Social Fetch exposes seventeen routes under /v1/discord. They cover an invite and the server behind it, a server's public directory page or subscription store page, directory browse and search, server, game and announcement indexes, a server's public widget, weekly trending games, a game page, application records with the app directory's similar and curated lists, guild templates, and public announcement channels and posts.

Every response uses the { data, meta } envelope with data.lookupStatus. A missing invite, server, game, application, template, channel or post comes back as a typed not_found, and a widget its owner has switched off comes back as restricted, so you branch on a field instead of parsing error pages. Lists page with an opaque page.nextCursor.

The routes report their real depth. Directory browse stops at 3,000 rows, server search stops at six pages, the server index returns 500 ids and slugs a page up to 200 pages, and the similar-applications route pages with page and a cursor. Announcement channels return their latest public posts with truncated: true because older posts are not available.

How to call the Discord API

  1. 1. Create an API key

    Sign up at Social Fetch and copy a key (sfk_...). New accounts get 100 free credits, enough to try every Discord route.

  2. 2. Pick a route and start with an id

    Use a real invite code or server id, for example GET /v1/discord/invites/python or GET /v1/discord/servers/267624335836053506. Send x-api-key on every request.

  3. 3. Branch on lookupStatus, then page

    Check data.lookupStatus before you store a row. For a list, keep sending the returned page.nextCursor while page.hasMore is true, and bill from meta.creditsCharged.

What each Discord route returns

  • Resolve an invite code to the server behind it, with live members and online counts, boosts, vanity code, tag and games.
  • Read a public server page by id, including its directory details, categories, keywords, reasons to join, social links, about text and announcement channels, or its subscription store tiers.
  • Browse the server directory by category or search it by relevance, both cursor-paged.
  • Enumerate server ids and slugs from the public directory list when browse depth is not enough, and game and application ids from their own catalogues.
  • List the ten weekly trending games and the published week list, read a game page, and get application records, paged similar applications and curated app collections.
  • Read guild templates with their serialized roles and channels, and public announcement channels and single posts.

How much does the Discord API cost?

Each Discord route charges 1 credit per completed request, shown on every endpoint page. Each page of a list is its own request. Credits never expire on pay-as-you-go packs, and meta.creditsCharged on every response is the billing source of truth.

Social Fetch vs the official Discord API

Public server, directory, app and announcement data comes in different shapes, each with its own fields and paging rules. Social Fetch returns one JSON envelope and one pagination contract across all seventeen routes: typed lookupStatus values, page.nextCursor, stable field names, and one credit per request. That makes it practical to join a server page, its widget, its games and its applications in one pipeline.

Pull your first Discord data.

Run a live Discord request in the playground. 100 free credits, no card, JSON back in seconds.

No credit cardSign up in 30 seconds withGoogleGitHub