Scrape data from Discord

People search for a Discord scraper, but Discord is a special case. It bans scraping and self-bots outright, and most of what is there is private. The honest route is the official API for your own server, and careful reading of public content. There are three ways to start, with no code, with code, or with a Claude skill.

What I mean by scraping Discord


Scraping Discord, done honestly, is narrow. It means reading data you are entitled to, from your own server or a public one you are part of, and ideally through Discord's official tools rather than by driving the app. Channel activity you have a right to see, public announcement content, your own server's data. It is not harvesting members, messages, or DMs from communities you do not run.

Discord has an API, and it bans scraping


This is the page where the honest answer is mostly do not. Discord's terms ban scraping and self-bots flat out, and they enforce it with account bans. On top of that, most of Discord is private, messages and members inside servers that people did not make public, and harvesting those is both against the rules and a real privacy harm.

So the right route is the official one. Discord has a proper API and a bot framework for reading and acting on your own server's data, with permission, the way Discord intends. If you run a community, build a bot through that. A browser driving the app to scrape members or messages is the thing that gets banned, and it is not something to build. Use the API, on your own server, with consent.

Who this is for


This is for the person who runs or helps run a Discord community and wants their own server's data, through the proper channels. A mod pulling public announcements, an admin building a bot on the official API. It is not for harvesting other people's servers. No-coders and coders both, since you can build it without code and drop into code when you want.

How I'd approach it


Reach for Discord's official API and bot framework first, because it is the supported way to read your own server's data with permission. Use the browser only for genuinely public, in-the-open content, and never to gather members, messages, or DMs from communities you do not run. If a task needs private data you are not entitled to, that is the signal to stop.

API and your own server first, public content only otherwise. I would lay out the first draft with Build with description.

Scrape Discord from a description


Describe the task in plain words in the Chrome extension and it builds the steps for you. Give it a few short lines, check what it made, and run it. Explore no-code.

To the right is an example. For your own server, the official API is the better route, build the bot there.

Chrome extension
Describe your automation

Instructions

  • Open a public page you are entitled to read43 / 500
  • Read the public content shown29 / 500
  • Pull out the fields you need28 / 500
  • Write them to a Google Sheet28 / 500
  • Leave members and private messages alone40 / 500

Scrape Discord in code


Build with code. For your own server, the official Discord API and bot framework are the right path. Explore code

Connect Playwright (or Puppeteer) to our cloud Chromium and write the same scripts you'd run locally, without managing the browser.

Code tool
Code example
// For your own server, use Discord's official API and bot framework.
// It is the supported, permitted way to read your server's data.
//
// A browser self-bot scraping members or messages is against
// Discord's terms and risks a ban, so that is not built here.
//
// If you have a public page you are entitled to read, you can
// scrape it like any other site, taking only what is public.

import { chromium } from "playwright";

const browser = await chromium.connectOverCDP(
  `wss://cdp-lb.axiom.ai/?token=${process.env.AXIOM_API_KEY}`
);

try {
  const context = browser.contexts()[0];
  const page = context.pages()[0] ?? await context.newPage();

  // Example: a public, in-the-open page, not the Discord app
  await page.goto("https://example.com/community-announcements");
  await page.waitForSelector(".post");

  const posts = await page.$$eval(".post", els =>
    els.map(el => el.textContent.trim())
  );

  console.log(posts); // write these to your sheet
} finally {
  await browser.close();
}

Build with a Claude skill

Build no-code or code bots with a skill.

Add the Claude skill and describe the task. For your own server it points you at the official API, the supported way to read your data.

Claude explaining the official Discord API route

What can you do?


The honest, supported routes. A couple of lines that decide everything.

Works well

  • The official API for your own server
  • A bot you build with permission
  • Genuinely public, in-the-open content
  • Your own server's data, with consent
  • Writing what you are entitled to into a sheet

Harder

  • Anything Discord serves only in the app
  • Self-bots, which Discord bans
  • Data you do not have a right to

Don't try

  • Harvesting members or contacts
  • Scraping messages or DMs from servers you do not run
  • Self-bots or anything against Discord's terms

What I'd watch out for


Discord is the one where the rules and the privacy stakes both say go carefully. Here is what I would watch for.

Use the official API

For your own server, Discord's API and bot framework are the supported route, and the only one that does not risk a ban. Build there, not by driving the app.

Members and messages are private

Most of Discord is private, and harvesting members, messages, or DMs from servers you do not run is both against the terms and a real privacy harm. Do not.

No self-bots

Driving the Discord app as a logged-in user to scrape is a self-bot, which Discord bans on sight. It is not worth the account.

Only what you are entitled to

If a task needs data you do not have a right to see, stop. The honest version stays on your own server and genuinely public content.

"The support team is amazing, and the product just keeps getting better. Worth every penny."

Emma Davis

"The visual builder is a dream come true. No more writing complex scripts!"

Lisa Anderson

"Axiom has completely transformed how I handle browser automation. The no-code interface is intuitive and powerful."

John Smith

"I was skeptical about no-code automation, but Axiom proved me wrong. It's incredibly powerful."

David Wilson

"The best investment we've made in our automation workflow. Simple yet powerful."

Jennifer Brown

"Finally, a tool that makes browser automation accessible without compromising on power. Highly recommended!"

Michael Chen

"Axiom has saved me countless hours. The automation possibilities are endless."

Robert Taylor

Fast to build. Easy to run and scale. Outstanding support.

Start for free. No credit card required.