# Skool Member Scraper (`futurizerush/skool-member-scraper`) Actor

Export complete member profiles from your Skool communities with social media links, engagement levels, and contact information. ⚠️ IMPORTANT: For large exports, set Actor timeout to 'No timeout' in Run Options to prevent premature termination.

- **URL**: https://apify.com/futurizerush/skool-member-scraper.md
- **Developed by:** [Rush](https://apify.com/futurizerush) (community)
- **Categories:** AI, Automation, Lead generation
- **Stats:** 37 total users, 4 monthly users, 100.0% runs succeeded, 2 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $5.00 / 1,000 members

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/platform/actors/running/actors-in-store#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 Member Scraper

Extract member information from Skool communities, including profiles, social media links, and engagement metrics. Exports to CSV, JSON, or Excel with a **clean, flat data structure** ready for immediate use.

### ✨ Features

- 🎯 **Flat Data Structure** - Social links directly accessible (e.g., `linkedin`, `twitter`)
- 🚀 **Real-time Export** - Data pushed to dataset as it's collected
- 📊 **Complete Profiles** - Names, bios, locations, social links, points, levels
- 🔄 **Automatic Deduplication** - No duplicate members in output
- ⚡ **Reliable Collection** - Stable and consistent data extraction
- 💾 **Multiple Formats** - Export as CSV, JSON, Excel, or HTML
- 🎨 **Single Dataset View** - No confusing multiple views - just clean data
- 🔍 **Smart Filters** - Filter by member type, level (1-9), and annual subscribers

### 📦 Output Format

**Clean, flat structure - perfect for Excel/CRM:**

```json
{
  "fullName": "John Doe",
  "username": "john-doe-123",
  "profileUrl": "https://www.skool.com/@john-doe-123",
  "bio": "Marketing professional helping businesses grow",
  "location": "New York, USA",
  "level": 5,
  "points": 1250,
  "role": "member",
  "website": "https://johndoe.com",
  "linkedin": "https://linkedin.com/in/johndoe",
  "instagram": "https://instagram.com/johndoe",
  "twitter": "https://twitter.com/johndoe",
  "youtube": "https://youtube.com/@johndoe",
  "facebook": "https://facebook.com/johndoe",
  "joinedAt": "2024-01-15T10:30:00Z",
  "lastActiveAt": "2025-11-09T03:45:00Z"
}
```

**Note**: Empty text fields are automatically removed to keep data clean. Fields like `avatarUrl` and `profilePictureUrl` only appear when the member has set them.

**All fields** (empty text fields automatically removed):

- `id` - Unique member identifier
- `fullName`, `firstName`, `lastName` - Member names
- `username` - Skool username/handle
- `profileUrl` - Skool profile page link (e.g., `https://www.skool.com/@username`)
- `bio` - Profile description
- `location` - Geographic location
- `level` - Community level (1-9)
- `points` - Community points
- `pointsCurrentLevel` - Points needed to reach the current level
- `pointsNextLevel` - Points needed to reach the next level
- `role` - Community role (member, group-moderator, group-admin)
- `isOnline` - Current online status
- `allowsDirectMessage` - Whether the member is open to DMs from non-friends
- `postsInCommunity` - Number of posts the member has made in this community
- `referrerId` - User ID of the affiliate / inviter who referred this member (if any)
- `avatarUrl` - Profile avatar/bubble picture
- `profilePictureUrl` - Full profile picture
- `website` - Personal website
- `linkedin` - LinkedIn profile
- `instagram` - Instagram profile
- `twitter` - Twitter/X profile
- `youtube` - YouTube channel
- `facebook` - Facebook profile
- `joinedAt` - Community join date (ISO 8601)
- `approvedAt` - Membership approval timestamp (ISO 8601, may differ from joinedAt for application-based communities)
- `lastActiveAt` - Last active timestamp (ISO 8601)

### 🚀 Quick Start

> ⚠️ **For large exports**, set the Actor timeout to **"No timeout"** in Run Options. The Actor has built-in state persistence and will automatically resume if interrupted.

#### Input Example

```json
{
  "email": "your@email.com",
  "password": "your_password",
  "communityName": "makemoney",
  "maxPages": 10,
  "memberType": "member",
  "level": 5,
  "annualMembersOnly": true
}
```

#### Parameters

| Field | Required | Description | Example |
|-------|----------|-------------|---------|
| `email` | ✅ | Your Skool login email | `"user@email.com"` |
| `password` | ✅ | Your Skool password | `"SecurePass123"` |
| `communityName` | ✅ | Community name from URL | `"makemoney"` |
| `maxPages` | ❌ | Limit pages to export (30 members per page). Leave empty to export all available members. For larger exports, set the run timeout to "No timeout". | `10` for testing |
| `memberType` | ❌ | Filter by type: `member`, `admin`, or `online` | `"member"` (default) |
| `level` | ❌ | Filter by level (1-9) for active members | `5` for Level 5+ members |
| `annualMembersOnly` | ❌ | Filter to show only annual subscription members | `true` or `false` (default) |

**Filter Examples:**

- Get only admins: `"memberType": "admin"`
- Get only online members: `"memberType": "online"`
- Get Level 5+ members: `"level": 5`
- Get only annual subscribers: `"annualMembersOnly": true`
- Get Level 7+ annual subscribers: `"level": 7, "annualMembersOnly": true`

**Finding `communityName`:**

- URL: `https://www.skool.com/makemoney/about`
- Community Name: `makemoney`

### ℹ️ Important Note

Skool's member list is **sorted by recent activity and updates dynamically**. As members go online or offline, their position in the list changes. This means that across multiple pages, some members may appear more than once while others may be temporarily missed. The scraper **automatically deduplicates** all results, so you will never get duplicate entries in your export. However, for very large communities, the exported list may not include every single member in one run. For the most complete results, consider running the scraper multiple times or using filters (admin, level, annual) to target specific segments.

### 📊 How It Works

1. **Login** - Authenticates with your Skool account
2. **Detect Size** - Automatically detects community size
3. **Collect Data** - Retrieves member profiles page by page
4. **Real-time Export** - Data available immediately as it's collected
5. **Smart Stopping** - Automatically stops when all available members are collected

### 💡 Use Cases

- **Lead Generation** - Export LinkedIn/Twitter contacts from community members
- **Admin Contact** - Get admin contact info for partnership opportunities
- **Community Analysis** - Analyze member engagement and activity levels
- **CRM Import** - Direct CSV import to Salesforce/HubSpot
- **Outreach Lists** - Build targeted contact lists by member level or subscription
- **Market Research** - Understand community demographics and engagement
- **Active Member Tracking** - Monitor currently online members

### 📥 Export Options

**CSV** - Perfect for Excel

```csv
fullName,username,location,linkedin,twitter,website
John Doe,john-doe-123,New York,https://linkedin.com/in/johndoe,...
```

**JSON** - For API integration

```json
[
  {
    "fullName": "John Doe",
    "username": "john-doe-123",
    "linkedin": "https://linkedin.com/in/johndoe",
    ...
  }
]
```

**Excel** - Ready-to-use spreadsheet

### 🔒 Privacy & Security

- ✅ **Credentials encrypted** - Stored securely in Apify
- ✅ **Member-only access** - Must be community member
- ✅ **Public data only** - Only visible profile information
- ✅ **Rate-limited** - Respects platform limits
- ⚠️ **Use responsibly** - Follow Skool's Terms of Service

### 🐛 Troubleshooting

**Login fails:**

- ✅ Check email/password
- ✅ Verify you're a community member
- ✅ Try logging in manually first

**No data returned:**

- ✅ Verify community name is correct
- ✅ Ensure community is not private
- ✅ Check you have member access

**Actor stops midway (timeout error):**

- ✅ Go to "Run Options" (top right) → Set "Timeout" to **"No timeout"**
- ✅ The Actor has built-in state persistence and will resume automatically if interrupted
- ✅ Use a smaller `maxPages` value for initial testing

**Export too slow or interrupted:**

- ✅ Run during off-peak hours
- ✅ Use a smaller `maxPages` for testing first
- ✅ The actor paces requests to stay within Skool's rate limits

***

**Note**: You must be a member of the community you're exporting from. This tool only extracts publicly visible information from Skool profiles.

### Disclaimer

This actor only works with member profiles the signed-in user already has permission to view. You retain full responsibility for using the extracted data in line with Skool's terms of service, applicable privacy laws, and any community-specific rules. The tool is provided as-is without warranty.

### Keywords

Skool scraper, Skool members, community export, lead generation, CRM import, member directory, community analytics, Skool data export, OpenClaw, Claude Code, Gemini, Antigravity, Codex, ChatGPT

# Actor input Schema

## `email` (type: `string`):

The email you use to sign in to Skool

## `password` (type: `string`):

Your Skool account password (kept secure)

## `communityName` (type: `string`):

Find this in your community URL. Example: for 'skool.com/makemoney' use 'makemoney'

## `maxPages` (type: `integer`):

Limit how many pages to export (30 members per page). Leave empty to export all members. Recommended: Start with 10 pages for testing.

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

Filter by member type: Member, Admins Only, or Online Members Only

## `level` (type: `integer`):

Filter by member level (1-9). Higher levels indicate more active members. Leave empty for all levels.

## `annualMembersOnly` (type: `boolean`):

Filter to show only annual/yearly subscription members. Leave unchecked to show all members.

## Actor input object example

```json
{
  "communityName": "makerschool",
  "maxPages": 10,
  "memberType": "member",
  "level": null,
  "annualMembersOnly": false
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "communityName": "makerschool",
    "maxPages": 10,
    "memberType": "member",
    "annualMembersOnly": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("futurizerush/skool-member-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 = {
    "communityName": "makerschool",
    "maxPages": 10,
    "memberType": "member",
    "annualMembersOnly": False,
}

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

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

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

```

## CLI example

```bash
echo '{
  "communityName": "makerschool",
  "maxPages": 10,
  "memberType": "member",
  "annualMembersOnly": false
}' |
apify call futurizerush/skool-member-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=futurizerush/skool-member-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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