# Skool Community Scraper — Details, Pricing & MRR Estimate (`scrapersdelight/skool-community-scraper`) Actor

From $0.002/community: scrape any Skool community's public details — name, members, online count, courses, rules, owner + socials, free/paid price — and a derived MRR estimate (members x price). No login for public data; bring your own Skool login for member-only data.

- **URL**: https://apify.com/scrapersdelight/skool-community-scraper.md
- **Developed by:** [Scrapers Delight](https://apify.com/scrapersdelight) (community)
- **Categories:** Automation, Lead generation, Agents
- **Stats:** 10 total users, 3 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 lot scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 🎓 Skool Community Scraper — Details, Pricing & MRR Estimate

**Point it at any Skool community and get the full public record in seconds — name, description, **member count**, online count, courses, modules, rules, the **owner + all their socials**, the **free/paid price**, and a derived **MRR estimate** (members × monthly price). No login needed for public data. Bring your OWN Skool login only if you want member-only data behind the paywall. Auto-discover the top 1,000 communities, or feed it your own list.**

From **$0.003 / community** — the cleanest, cheapest way to pull Skool community details + revenue estimates on Apify.

***

### Why this one

Most Skool scrapers dump a member list or one community at a time, miss the price, and never compute the number you actually want — **how much is this community making?** This actor is built around that:

- 💰 **MRR estimate** — `members × monthly price`, derived for every paid community (free = $0). Perfect for sizing creators, competitor research, and acquisition targeting.
- 🏷️ **Price + interval** — pulled straight from the page (`$/month` or `$/year`), even for **private/paid** communities (their marketing/about data is public).
- 👤 **Owner + socials** — creator name, bio, and YouTube / Instagram / LinkedIn / X / Facebook / TikTok / website links.
- 🔭 **Auto-discovery** — seed from `skool.com/discovery` (up to **1,000 ranked communities**) with one toggle, or pass your own URLs/handles.
- 🔔 **Change monitor** — schedule it and get a **Slack / email / webhook** alert when a community's member count, price, or MRR moves.
- 🔓 **Public by default** — no cookie needed for any of the above. Member-only pulls are an **optional** bring-your-own-login extra.

***

### What you get (per community)

`handle` · `url` · `name` · `description` · **`members`** · `online_members` · `admins` · `posts` · `rules_count` · `courses` · `modules` · `is_free` · `is_paid` · `is_public` · **`price_amount`** · `price_currency` · `price_interval` · **`mrr_estimate_usd`** · `mrr_basis` · `levels` · `tabs` · `links` · **`owner`** (name, bio, socials, mrr_status) · `online_sample` · `created_at` · `updated_at` · `is_new` · `member_delta` · `scraped_at`

Export to CSV / JSON / Excel, or pull via the Apify API into your CRM, Clay, n8n, or Make.

***

### How to use it

1. Click **Try for free**.
2. Paste one or more **community URLs** (e.g. `https://www.skool.com/ai-automation-society`) — or turn on **Auto-discover** to seed the top communities.
3. Click **Start**, then open the **Dataset** tab.
4. **For revenue research:** sort the dataset by `mrr_estimate_usd`.
5. **For a live feed:** turn on **Monitor mode** + an Apify **Schedule** to get alerted when members / price / MRR change.

#### Quick start (specific communities)

```json
{ "communityUrls": ["https://www.skool.com/ai-automation-society", "https://www.skool.com/calligraphy"] }
```

#### Discover & rank the top communities by MRR

```json
{ "discover": true, "discoverPages": 10, "maxItems": 300 }
```

#### Daily change monitor

```json
{ "communityUrls": ["https://www.skool.com/ai-automation-society"], "monitorMode": true, "slackWebhookUrl": "https://hooks.slack.com/services/…" }
```

#### Member-only pull (your own login)

```json
{ "communityUrls": ["https://www.skool.com/your-paid-community"], "skoolCookie": "auth_token=eyJ…" }
```

> Copy your `auth_token` (or the whole Cookie header) from your browser's DevTools while logged into Skool. It is **never logged and never stored** — it's sent only on your own requests.

***

### Why it beats the alternatives

| | **This actor** | Typical Skool scraper | Leading Skool suite | Budget clone |
|---|---|---|---|---|
| Community details (members, courses, rules) | ✅ Full | ⚠️ Partial | ✅ | ⚠️ Partial |
| **Price + interval (incl. private/paid)** | ✅ | ❌ | ⚠️ Sometimes | ❌ |
| **MRR estimate (members × price)** | ✅ Derived | ❌ | ❌ | ❌ |
| Owner + all socials | ✅ | ❌ | ⚠️ Name only | ❌ |
| Auto-discover top 1,000 | ✅ | ❌ | ⚠️ | ❌ |
| Change monitor + alerts | ✅ | ❌ | ❌ | ❌ |
| No login for public data | ✅ | ✅ | ⚠️ Login-walled | ✅ |
| Price | **from $0.003 / community** | varies | $$$ / month | cheap, thin |

*Generic comparison for orientation — verify current competitor features/pricing yourself.*

#### Related Skool & community actors (our own)

| Actor | What it does |
|---|---|
| **Skool Community Scraper** (this) | Community details, pricing & MRR estimate |
| Eventective Scraper | Event vendor & venue leads + emails |
| BounceGuide Scraper | Party-rental company leads by state/city |

***

### Who it's for

- 📈 **Creators & course-builders** benchmarking competitor communities by members and MRR
- 🧠 **Investors / M\&A** sizing creator businesses (the MRR estimate is the headline number)
- 🛠️ **Agencies & tools** selling to Skool community owners (owner + socials = the lead)
- 🔬 **Researchers & analysts** mapping the Skool ecosystem from the ranked discovery list

***

### Pricing (pay-per-event)

| Event | What it covers | Suggested price |
|-------|----------------|-----------------|
| `lot-scraped` | each community returned (details + price + MRR) | ~$3 / 1,000 (**$0.003 each**) |
| `monitor-run-completed` | each scheduled watch run | ~$0.05 / run |
| `new-lot-detected` | each newly-appearing community in monitor mode | ~$0.02 |
| `alert-delivered` | each Slack / email / webhook alert | ~$0.005 |

You are **never** charged for the actor start or for raw dataset items — only the events above.

***

### Notes & limits

- **Public marketing data.** Community name, description, member count, price, and owner socials are shown publicly on each community's `/about` page (even for private/paid communities). **You are responsible** for compliant use of any data you collect.
- **The MRR figure is an estimate** — `members × monthly price`, a **gross upper bound**. It ignores annual-plan discounts, free trials, churn, and non-paying/legacy members. Treat it as a sizing signal, not accounting.
- **Member-only data needs your own login.** Public details, pricing, and MRR need **no cookie**. Only deeper member-only pulls require you to supply your own Skool session cookie.
- **No double-counting** — monitor mode remembers what it's seen (in a persistent named store) and only alerts on real changes.

***

### FAQ

**Do I need a Skool login?** No — every field above (details, price, MRR, owner) comes from the public `/about` page with no login. A cookie is only for optional member-only data.

**How is MRR calculated?** `members × monthly price`. For yearly plans the price is normalised to monthly. It's a gross upper bound — see *Notes & limits*.

**Does it get the price for private / paid communities?** Yes. Skool serves a community's about/marketing data (including its price) publicly even when the community itself is private.

**How do I scrape many communities at once?** Turn on **Auto-discover** (seeds from the ranked `skool.com/discovery` list, up to 1,000) or paste a list of URLs/handles into **Community URLs**.

**Can it watch for changes?** Yes — enable **Monitor mode** and add an Apify **Schedule**; it alerts on member-count, price, and MRR changes via Slack/email/webhook.

**What input formats are accepted?** Full URLs (`https://www.skool.com/<handle>`, with or without `/about`) or bare handles (`<handle>`).

**Is it blocked by anti-bot?** No serious anti-bot — Skool sits behind AWS CloudFront with only a User-Agent gate, which the actor sets. Datacenter proxies are plenty.

**What if a community is removed or fully private?** That community is skipped with a warning; the rest of the run continues.

**Does it find the owner's socials?** Yes — YouTube, Instagram, LinkedIn, X, Facebook, TikTok, and website when the creator has listed them.

**Can I push results to my CRM?** Yes — export CSV/JSON/Excel or pull via the Apify API/integrations into Clay, n8n, Make, HubSpot, etc.

# Actor input Schema

## `communityUrls` (type: `array`):

Skool community URLs (e.g. https://www.skool.com/ai-automation-society) or bare handles (e.g. ai-automation-society). The /about path and query strings are stripped automatically.

## `discover` (type: `boolean`):

Instead of (or in addition to) listing URLs, auto-seed from skool.com/discovery — the ranked list of the top public communities. Pair with 'Discovery pages' to control how many.

## `discoverCategory` (type: `string`):

Optional category filter for discovery (the ?c= slug on skool.com/discovery, e.g. 'business', 'health', 'tech').

## `discoverSearch` (type: `string`):

Optional keyword to search discovery (the ?t= term).

## `discoverPages` (type: `integer`):

How many discovery pages (~30 communities each) to seed from. Raise for bigger pulls.

## `maxItems` (type: `integer`):

Cap on communities per run. 0 = unlimited (the discovery list is up to 1,000).

## `concurrency` (type: `integer`):

How many community pages to fetch in parallel.

## `skoolCookie` (type: `string`):

OPTIONAL. Your OWN logged-in Skool session cookie, for member-only pulls behind the paywall. Copy the Cookie header (or just the 'auth_token' value) from your browser DevTools while logged in. Public community details, pricing & MRR need NO cookie. Never hardcoded, never logged.

## `monitorMode` (type: `boolean`):

Recurring watcher: diff against the prior run (per scope) and alert when a community's member count, price, or MRR changes (or a new community appears). Pair with an Apify Schedule.

## `alertOnChange` (type: `boolean`):

In monitor mode, send an alert for each changed/new community.

## `webhookUrl` (type: `string`):

POST endpoint for change alerts.

## `slackWebhookUrl` (type: `string`):

Slack incoming-webhook URL.

## `emailRecipients` (type: `array`):

Emails for the change digest (via apify/send-mail).

## `proxyConfiguration` (type: `object`):

Proxy settings. Datacenter rotation is plenty — Skool is server-rendered behind CloudFront with no challenge (just a User-Agent gate).

## `diagnose` (type: `boolean`):

Dev only. Logs the first parsed community in full, then exits.

## Actor input object example

```json
{
  "communityUrls": [
    "https://www.skool.com/ai-automation-society"
  ],
  "discover": false,
  "discoverPages": 4,
  "maxItems": 50,
  "concurrency": 8,
  "monitorMode": false,
  "alertOnChange": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "diagnose": false
}
```

# Actor output Schema

## `communities` (type: `string`):

The dataset of Skool communities (one item per community, with details, pricing & MRR estimate).

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "communityUrls": [
        "https://www.skool.com/ai-automation-society"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapersdelight/skool-community-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "communityUrls": ["https://www.skool.com/ai-automation-society"] }

# Run the Actor and wait for it to finish
run = client.actor("scrapersdelight/skool-community-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "communityUrls": [
    "https://www.skool.com/ai-automation-society"
  ]
}' |
apify call scrapersdelight/skool-community-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapersdelight/skool-community-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/BEpRTdhqENvJAg9Oo/builds/koo3lhay3SfXb2YLz/openapi.json
