# Skool Scraper (`blueskyscraper/skool-scraper`) Actor

Scrape Skool without a login: posts and comments of public communities, members with bio and social links, community details with price, owner and rating, Discovery search, and user profiles. Export JSON, CSV or Excel, schedule it, or call it by API.

- **URL**: https://apify.com/blueskyscraper/skool-scraper.md
- **Developed by:** [BlueskyScraper](https://apify.com/blueskyscraper) (community)
- **Categories:** Social media, Lead generation, Agents
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.40 / 1,000 posts

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?

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 Scraper** collects what any visitor can see on skool.com — **without a login, cookies or password**: the **posts** of a public community with full text and the author's bio and social links, **every comment and reply**, **members** with bio, location, LinkedIn, Instagram, Facebook, YouTube and website, **community details** with price, plans, rating, reviews and the owner, **Discovery search** for communities by keyword, category, price and language, and **user profiles** with followers and the communities a person owns. **From $1 per 1,000 rows, no start fee, error rows free.**

### Tested head-to-head — 29 September 2026

![Skool scrapers tested head-to-head: this Actor needs no login, returns 60 unique members when 60 are asked, 36 fields per post with the author's bio and links, $2 per 1,000 posts and $1.50 per 1,000 members](https://api.apify.com/v2/key-value-stores/tZJ3TnhQJ1jqUQVXq/records/skool-tested-2026-09-29.png)

The same requests went to this Actor and to the six most-used Skool scrapers on the Apify Store: 20 posts and 60 members of The AI Advantage, 20 comments of one post, 20 communities for `marketing`.

| | This Actor | The six others |
|---|---|---|
| Login, cookies or password | **not needed** | 3 of 6 require them |
| 60 members asked | **60 different people** | 30 different people, each returned twice · or cookies required |
| Fields in a post row | **36**, with the author's bio and social links | 15–16, author name only |
| 20 communities found | **7.0 s**, 45 fields with owner links | 4.4–40.1 s, 16–43 fields |
| Price per 1,000 posts | **$2** | $3.00–5.40 |
| Price per 1,000 members | **$1.5** | $2.50–3.00 |

### What is Skool Scraper?

A **Skool API alternative** for lead generation, competitor research, community analysis and market research on the course and coaching economy. Paste community URLs, post URLs, profiles or keywords, pick what to get, and export the rows as JSON, CSV or Excel, or read them by API.

| Mode | You give | You get |
|---|---|---|
| **Posts** | community URLs (+ keywords to search inside them) | posts with title, text, likes, comments, category, author bio and links |
| **Comments** | post URLs, or community URLs | every comment and reply, depth, likes, commenter bio and links |
| **Members** | community URLs (+ keywords) | name, bio, location, LinkedIn, Instagram, Facebook, X, YouTube, TikTok, website, level, points, role, join date |
| **Community details** | community URLs | members, posts, online, admins, courses, price, plans, rating, reviews, owner, affiliate % |
| **Find communities** | keywords, category, price, language | Skool Discovery results with full details for each community |
| **Profiles** | `skool.com/@user` links | followers, following, posts, communities joined and owned |

Private communities show only their About page to a visitor — use **Community details** for them.

### How much does it cost?

| Row | Price |
|---|---|
| **Post** | $0.002 — $2 per 1,000 |
| **Comment** | $0.001 — $1 per 1,000 |
| **Member** | $0.0015 — $1.5 per 1,000 |
| **Community** (with full details) | $0.003 |
| **Profile** | $0.003 |
| Add-on: profile stats on a member | +$0.0015 |

No start fee, no proxy charge, no browser. Error rows, skipped rows and rows filtered out are never billed. **Maximum rows per run** is a hard ceiling on the bill.

### ⬇️ Input

```json
{
    "mode": "members",
    "communityUrls": ["https://www.skool.com/the-ai-advantage"],
    "keywords": ["marketing"],
    "onlyWithLinks": true,
    "maxResultsPerInput": 500
}
```

### ⬆️ Output

A member row:

```json
{
    "type": "member",
    "name": "Igor Pogany",
    "handle": "igor-pogany-3872",
    "profileUrl": "https://www.skool.com/@igor-pogany-3872",
    "bio": "Head of Education at AI Advantage",
    "instagram": "https://www.instagram.com/igorpogany/",
    "youtube": "https://www.youtube.com/@aiadvantage/",
    "website": "https://aiadvantage.com",
    "level": 8,
    "points": 10356,
    "role": "group-admin",
    "joinedAt": "2026-01-14T15:47:21.232132Z",
    "communityName": "The AI Advantage"
}
```

### Use cases

- **Lead generation** — members and commenters of the communities your buyers join, with their LinkedIn, Instagram and website.
- **Competitor research** — what a rival community charges, how many members and posts it has, how people rate it, what its plans include.
- **Content research** — the most liked posts and questions in a niche, sorted like the feed or by top of the month.
- **AI and RAG** — clean post and comment text with stable IDs and dates.

### ❓ FAQ

#### Is it legal to scrape Skool?

It reads only what skool.com shows to a visitor who is not logged in: public communities, their About pages, public profiles. Member data is personal data under laws like the GDPR — have a lawful reason to process it, and respect the communities' rules.

#### Why don't I need my Skool cookies?

Everything here is public. Actors that ask for your cookies log in as you; this one never does, so your account is never at risk.

#### How are all members collected when Skool shows a visitor only 30?

Skool's Members page shows the same 30 people to anyone who is not logged in. The Actor reads the community's member search instead, which pages through thousands of people, and removes duplicates — you get different people, never the same ones twice.

#### Can I get only new posts or new members?

Yes — set **Monitoring mode — store name** and schedule the Actor. Each run returns only rows it has not delivered before.

### You might also like

| Actor | What it does |
|---|---|
| [Skool Members Scraper](https://apify.com/blueskyscraper/skool-members-scraper) | Members with bio, location, LinkedIn, Instagram and website |
| [Skool Posts Scraper](https://apify.com/blueskyscraper/skool-posts-scraper) | A community's feed, search inside it, comments on demand |
| [Skool Comments Scraper](https://apify.com/blueskyscraper/skool-comments-scraper) | Every comment and reply with the commenter's links |
| [Skool Community Scraper](https://apify.com/blueskyscraper/skool-community-scraper) | Discovery search, price, rating, reviews and the owner |

# Actor input Schema

## `mode` (type: `string`):

<b>Posts</b> — a community's feed, or search inside it with <i>Keywords</i>. <b>Comments</b> — every comment and reply under posts. <b>Members</b> — people with bio, location and social links. <b>Community details</b> — members, posts, price, owner, rating, plans. <b>Find communities</b> — search Skool Discovery by keyword, category, price and language. <b>Profiles</b> — followers and the communities a person owns.

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

Community URL or the name from its URL: <code>https://www.skool.com/the-ai-advantage</code> or <code>the-ai-advantage</code>. Public communities show posts and members to anyone; a private one shows only its About page (use <i>Community details</i>).

## `postUrls` (type: `array`):

A post in a public community: <code>https://www.skool.com/the-ai-advantage/\<post></code>.

## `keywords` (type: `array`):

<b>Find communities</b>: search terms for Skool Discovery, e.g. <code>marketing</code>, <code>real estate</code>. <b>Posts</b> and <b>Members</b>: search inside the communities above — posts about <code>n8n</code>, members whose profile mentions <code>marketing</code>.

## `profileUrls` (type: `array`):

Skool user: <code>https://www.skool.com/@zachginn</code> or <code>@zachginn</code>.

## `startUrls` (type: `array`):

Any skool.com link, routed automatically: community, its About or Members page, a post, a <code>@profile</code>, or a Discovery search like <code>https://www.skool.com/discovery?q=fitness</code>.

## `maxResultsPerInput` (type: `integer`):

Cap for each input, not for the whole run. Find communities returns up to 1,000 per keyword (all Skool Discovery shows).

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

The same sorting the community feed offers.

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

Category names as the community shows them, e.g. <code>AI News</code>. A wrong name returns a free row listing the community's categories. Empty = all.

## `postedAfter` (type: `string`):

<code>YYYY-MM-DD</code>. The feed is then read newest first and paging stops at this date.

## `postedBefore` (type: `string`):

<code>YYYY-MM-DD</code>. With <i>Only posts after</i> this gives a date window.

## `minLikes` (type: `integer`):

Drop posts with fewer likes.

## `minComments` (type: `integer`):

Drop posts with fewer comments.

## `includeComments` (type: `boolean`):

Posts mode: after each post, its comments and replies with the commenter's bio and social links.

## `maxCommentsPerPost` (type: `integer`):

Cap for comments under one post.

## `includeRootPost` (type: `boolean`):

Comments mode: a post row before its comments.

## `memberType` (type: `string`):

Everyone, or only the people who run the community.

## `onlyWithLinks` (type: `boolean`):

Keep only people who list LinkedIn, Instagram, Facebook, X, YouTube, TikTok, a website or an e-mail. Skipped members are not billed.

## `joinedAfter` (type: `string`):

<code>YYYY-MM-DD</code>. Members who joined earlier are skipped and not billed. For a steady feed of new members use <i>Monitoring mode</i>.

## `includeProfileStats` (type: `boolean`):

Each member also gets followers, following, posts count, number of communities joined and the communities they own (name, URL, members, price). One extra page per member.

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

Find communities: the Discovery price filter.

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

Public communities show posts and members to anyone.

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

Communities in this language.

## `discoveryCategory` (type: `string`):

Works alone too — leave Keywords empty to list a whole category.

## `discoverySort` (type: `string`):

Skool's own Trending or Top order.

## `minMembers` (type: `integer`):

Skip smaller communities (not billed).

## `includeCommunityDetails` (type: `boolean`):

Open each community's About page: owner with bio and social links, total posts, online members, admins, courses, monthly/annual/one-time prices, plans and benefits, latest reviews. No extra charge.

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

Stop after this many rows in the whole run — a hard ceiling on cost.

## `monitoringStoreName` (type: `string`):

Give the run a name (e.g. <code>new-members</code>) and every later run with the same name returns <b>only rows it has not delivered before</b> — new posts, new comments, new members. Schedule it daily; nothing is billed twice. Empty = normal run.

## Actor input object example

```json
{
  "mode": "posts",
  "communityUrls": [
    "https://www.skool.com/the-ai-advantage"
  ],
  "maxResultsPerInput": 50,
  "sortBy": "newest-cm",
  "minLikes": 0,
  "minComments": 0,
  "includeComments": false,
  "maxCommentsPerPost": 100,
  "includeRootPost": true,
  "memberType": "members",
  "onlyWithLinks": false,
  "includeProfileStats": false,
  "price": "any",
  "communityType": "any",
  "language": "all",
  "discoveryCategory": "all",
  "discoverySort": "trending",
  "minMembers": 0,
  "includeCommunityDetails": true,
  "maxItems": 10000
}
```

# Actor output Schema

## `rows` (type: `string`):

One row per post, comment, member, community or profile; error rows explain inputs that could not be read.

# 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/the-ai-advantage"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("blueskyscraper/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 = { "communityUrls": ["https://www.skool.com/the-ai-advantage"] }

# Run the Actor and wait for it to finish
run = client.actor("blueskyscraper/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 '{
  "communityUrls": [
    "https://www.skool.com/the-ai-advantage"
  ]
}' |
apify call blueskyscraper/skool-scraper --silent --output-dataset

```

## MCP server setup

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