# Skool Community Scraper (`scraptivo/skool-scraper`) Actor

Extracts Skool communities and their details, reviews, members, courses, and events from discovery search and category filters.

- **URL**: https://apify.com/scraptivo/skool-scraper.md
- **Developed by:** [Scraptivo](https://apify.com/scraptivo) (community)
- **Categories:** Developer tools, Lead generation, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.97 / 1,000 communities

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

**Skool Community Scraper** collects communities from [Skool](https://www.skool.com) discovery search and category filters and turns them into structured data for audience research, lead generation, and community discovery. Provide a keyword such as "ai video" or a category, run the Actor, and export name, description, member count, ratings, owner, and more to JSON, CSV, Excel, or your preferred integration. Optionally enrich each community with details, reviews, top members, classroom courses, and calendar events. From just **$1 per 1,000 communities**.

### What can you automate with Skool Community Scraper?

- **Discover communities** — search and filter Skool by category, price, and type.
- **Build creator lead lists** — export community owners and their audience sizes.
- **Analyze communities** — capture member counts, ratings, and review counts.
- **Enrich records** — optionally pull about-page details, top members, and reviews.
- **Schedule recurring collection** — track community growth over time.

### Who is this scraper for?

| Team | Workflow |
|---|---|
| Growth and marketing teams | Find communities in a niche and their owners. |
| Creators and course sellers | Study successful communities in their category. |
| Lead-generation teams | Collect community and owner data for outreach. |
| Market researchers | Analyze community supply, pricing, and engagement. |

### What data can you collect from Skool?

| Data group | Example fields | How it helps |
|---|---|---|
| Community identity | `id`, `slug`, `name`, `url`, `aboutUrl` | Identify and link each community. |
| Branding | `logoUrl`, `coverImageUrl`, `color`, `initials` | Feed visual brand data to your tools. |
| Access & pricing | `isPublic`, `membershipModel`, `price` | Filter by free, paid, or trial communities. |
| Engagement | `totalMembers`, `reviewAverageRating`, `reviewCount` | Measure reach and reputation. |
| Enrichment | `owner`, `details`, `reviews`, `members`, `classroom`, `calendar` | Optional detail data when enabled. |

### How to use Skool Community Scraper

1. Open the Actor and go to the **Input** tab.
2. Enter a keyword in **Search Queries** or select a **Category**.
3. Set **Price** and **Community Type** filters if needed.
4. Choose a **Max Items** limit and any optional detail toggles.
5. Run the Actor, then export the dataset as JSON, CSV, or Excel.

```json
{
  "searchQueries": ["ai video"],
  "price": "paid",
  "communityType": "public",
  "sortBy": "trending",
  "scrapeCommunityDetails": true,
  "maxItems": 25
}
```

### Example workflow

#### Monthly list of growing paid communities in a niche

1. Run a keyword search for your niche every month.
2. Keep only communities above your required `totalMembers` and rating.
3. Send new records to a spreadsheet or CRM.
4. Deduplicate using the stable `id` or `slug`.

### Automate and integrate your results

Schedule the Actor from the Apify Console or via API to run weekly or monthly. After a successful run, trigger a webhook to push results to Google Sheets, Make, Zapier, Slack, or a database. Use the stable `id` or `slug` as your deduplication key.

### Input reference

| Field | Type | Required | Default | What it controls |
|---|---:|---|---|---|
| `searchQueries` | array | No | `["ai video"]` | Keywords for Skool discovery search. |
| `categories` | array | No | — | Discovery categories (empty = all). |
| `communityUrls` | array | No | — | Direct community URLs or slugs. |
| `price` | string | No | — | Filter: `free`, `paid`, `free-trial`. |
| `communityType` | string | No | — | Filter: `public` or `private`. |
| `sortBy` | string | No | `trending` | Sort by `trending` or `top`. |
| `language` | string | No | — | Discovery language filter. |
| `scrapeCommunityDetails` | boolean | No | `false` | Add about-page details and owner. |
| `scrapeCommunityReviews` | boolean | No | `false` | Add community reviews. |
| `scrapeMembers` | boolean | No | `false` | Add the public top-members list. |
| `scrapeClassroom` | boolean | No | `false` | Add public classroom courses and modules. |
| `scrapeCalendar` | boolean | No | `false` | Add public calendar events. |
| `maxItems` | integer | No | `10` | Max communities to return (0 = unlimited). |

### Output example

```json
{
  "id": 1234567,
  "slug": "ai-video-creators",
  "name": "AI Video Creators",
  "url": "https://www.skool.com/ai-video-creators",
  "description": "A community for creators using AI to produce video content.",
  "isPublic": true,
  "membershipModel": "paid",
  "totalMembers": 1840,
  "reviewAverageRating": 4.8,
  "reviewCount": 96,
  "owner": {
    "name": "Jane Creator",
    "url": "https://www.skool.com/@janecreator"
  }
}
```

### How much does it cost to scrape Skool?

Billing is pay-per-event. You are charged **$1 per 1,000 communities** for discovery results (`dataset-item`). Optional extras are billed only when enabled: community details and community reviews each at $1 per 1,000. A one-time `Actor Start` fee of $0.00005 applies per run. Apify plan discounts reduce these prices further.

### Reliability and responsible use

Residential proxies are enabled by default and recommended for reliable access. Discovery results include name, description, member count, and rating; `owner`, `reviews`, `members`, `classroom`, and `calendar` appear only when their toggles are enabled. Top-members lists are limited to the roughly 30 public members a community exposes. Use the Actor only for lawful purposes and respect Skool's terms of service.

### Frequently asked questions

#### Can I scrape communities by category?

Yes. Leave `searchQueries` empty and set `categories`, or combine categories with keywords. `Trending` is a sort order, not a category.

#### Can I schedule Skool Community Scraper to run automatically?

Yes. Use the Apify Scheduler to run weekly or monthly and track community growth.

#### What counts as one result?

One result is one community added to the dataset (`dataset-item`). Community details and reviews are separate events billed only when enabled.

#### Why are some fields empty?

`owner`, `details`, `reviews`, `members`, `classroom`, and `calendar` appear only when their toggles are enabled. A community that hides its members returns no member list.

#### How do I avoid duplicate records?

Deduplicate on the stable `id` or `slug`.

#### Do I need a proxy?

Residential proxies are recommended and enabled by default.

### Related Scraptivo automations

- [YouTube Channel Scraper](https://apify.com/scraptivo/youtube-channel-scraper) — channel and creator data.
- [Twitter/X Profile Scraper](https://apify.com/scraptivo/twitter-x-profile-scraper) — creator profile data.
- [Reddit Scraper](https://apify.com/scraptivo/reddit-scraper) — community posts and engagement.

### Support and custom workflows

Need a different field, source, or delivery workflow? Contact Scraptivo at scraptivo@gmail.com. Include the Actor name, a sample keyword or category, required fields, and expected volume so we can assess the request.

# Actor input Schema

## `searchQueries` (type: `array`):

Keywords to search on Skool discovery (the `q` parameter), e.g. "ai video" or "fitness". Leave empty to browse by category and filters only.

## `categories` (type: `array`):

Discovery categories. Leave empty to search across all categories. Trending is a sort option, not a category.

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

Optional Skool community URLs or slugs to scrape directly, e.g. https://www.skool.com/aivideobootcamp/about.

## `price` (type: `string`):

Discovery price filter.

## `communityType` (type: `string`):

Discovery visibility filter.

## `sortBy` (type: `string`):

Discovery sort order. Use trending (default) or top.

## `language` (type: `string`):

Discovery language filter (Skool `lang` parameter).

## `scrapeCommunityDetails` (type: `boolean`):

Visit each community about page for owner/admin, landing description, price, ratings, and stats. Charged as community-details.

## `scrapeCommunityReviews` (type: `boolean`):

Extract community reviews (about-page preview plus remaining pages). Charged as community-reviews.

## `scrapeMembers` (type: `boolean`):

Extract the public top members list (about 30) when the community has not hidden members.

## `scrapeClassroom` (type: `boolean`):

Extract public classroom courses and modules when the classroom tab is visible.

## `scrapeCalendar` (type: `boolean`):

Extract public calendar events when the calendar tab is visible.

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

Maximum number of communities to scrape (0 = unlimited).

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

Proxy settings. Apify Residential proxies are recommended.

## Actor input object example

```json
{
  "searchQueries": [
    "ai video"
  ],
  "price": "",
  "communityType": "",
  "sortBy": "trending",
  "language": "english",
  "scrapeCommunityDetails": false,
  "scrapeCommunityReviews": false,
  "scrapeMembers": false,
  "scrapeClassroom": false,
  "scrapeCalendar": false,
  "maxItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

JSON array of scraped communities

## `runStats` (type: `string`):

Record counts and timestamps for this run

## `run` (type: `string`):

Apify Console link to inspect this run

# 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 = {
    "searchQueries": [
        "ai video"
    ],
    "maxItems": 10,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraptivo/skool-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 = {
    "searchQueries": ["ai video"],
    "maxItems": 10,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("scraptivo/skool-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 '{
  "searchQueries": [
    "ai video"
  ],
  "maxItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call scraptivo/skool-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scraptivo/skool-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/iGHIP17ky5CvR6saF/builds/PqoRv4nft6wfROThK/openapi.json
