# Skool Member Scraper: Public Community Leads (`getascraper/skool-public-members-scraper`) Actor

Find public Skool communities, owners, and member leads with profiles, contact links, lead scores, source URLs, and coverage labels. Export to CSV, JSON, or Excel for market research and authorized outreach.

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

## Pricing

from $0.99 / 1,000 lead records

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/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: Public Community Leads

Find public Skool communities, owners, and available member leads without manually sorting profiles. Export genuine profile details, public contact links, lead scores, source URLs, and coverage labels for market research and authorized outreach.

> **Authorization required:** Skool's terms and platform policies restrict automated scraping. Use this Actor only with written authorization from Skool, a lawful basis, and permission to process the data. Signing in does not create permission or bypass access controls.

### 🔍 What does this Skool member scraper do?

This Skool scraper turns public community pages into structured community, owner, and member lead records. Start from public community URLs, Skool Discovery URLs, or keyword searches.

- Discover public Skool communities by niche.
- Collect public community signals such as size, activity, courses, and displayed pricing when available.
- Return public owner and member profiles, including bios, locations, websites, and social links when Skool exposes them.
- Score lead records from genuine source fields and explain the score.
- Filter before saving so the dataset contains only the leads that meet your criteria.
- Mark every member result with an honest coverage label instead of implying a complete roster.

This Actor is not affiliated with Skool and is not an official Skool API.

### 👤 Who is it for?

- Community researchers comparing public Skool groups by niche, size, activity, courses, and visible pricing.
- Partnership teams reviewing public community-owner profiles before making relevant, permitted contact.
- Creator-economy analysts building a reproducible dataset of public community signals.
- Community operators studying public positioning and member mix without copying profiles by hand.

### 🚀 How to use it

1. Add public community URLs, Discovery URLs, search queries, or a combination.
2. Select the lead types and qualification filters you need.
3. Optionally provide secure account access if your account is already authorized to view additional member pages.
4. Run the Actor and use the lead pipeline, people, or communities dataset view.
5. Check `coverageKind`, `coveragePercent`, and `coverageNote` before treating member output as complete.

### 🔐 Access and coverage

You can research public communities without signing in. Those member rows are labeled `public_sample` to show they are a visible sample, not a complete list.

If you choose to provide secure account access, the Actor can request additional pages your own account is already allowed to view.

Account access never grants permission to private communities or overrides restrictions. It can only be used when all of the following are true:

- The target community is public.
- Your account has already joined the community.
- Your account is authorized to view the returned profiles.

Additional access does not guarantee a complete member list. Availability can vary, so the Actor labels the coverage it actually achieved. Account access information stays private and never appears in the results.

### 🧭 Coverage labels

| Label           | Meaning                                                                                       |
| --------------- | --------------------------------------------------------------------------------------------- |
| `community`     | The row describes a public community or owner. Member pagination does not apply.              |
| `public_sample` | The row came from Skool's anonymous public member sample and is not a complete member export. |
| `complete`      | The authorized scan reached the reported member or page total.                                |
| `limited`       | The scan reached the chosen member limit before the reported total.                           |
| `repeated_page` | Skool repeated a member page, so the scan stopped instead of claiming complete coverage.      |

### 🎛️ Filters and dataset views

Filter communities by reported membership size. Filter people by lead score, public contact availability, member date, or role. You can also deduplicate people across communities.

The dataset provides three views:

- **Lead pipeline:** Community, owner, and member leads with scores, contact links, source URLs, and coverage.
- **People:** Owner and member profiles with roles, bios, locations, public links, dates, and activity.
- **Communities:** Public group signals including size, online count, posts, courses, visible pricing, and source links.

The run summary reports discovered communities, skipped private communities, scanned members, saved rows, and any coverage warnings.

### 📥 Input

| Field                    | Type             | Required | Description                                                                                          |
| ------------------------ | ---------------- | -------- | ---------------------------------------------------------------------------------------------------- |
| `startUrls`              | array of URLs    | No       | Public Skool community, members, about, or Discovery URLs. Provide this, `searchQueries`, or both.   |
| `searchQueries`          | array of strings | No       | Niche terms to search in Skool Discovery, such as AI automation or fitness coaching.                 |
| `leadTypes`              | array of strings | No       | Any combination of `community`, `owner`, and `member`. All are selected by default.                  |
| `skoolCookie`            | string           | No       | Optional secure account access. This protected field never appears in results.                       |
| `maxCommunities`         | integer          | No       | Maximum unique public communities to process, from 1 to 500.                                         |
| `maxDiscoveryPages`      | integer          | No       | Maximum Discovery pages to request for each search query.                                            |
| `maxMembersPerCommunity` | integer          | No       | Maximum member profiles to scan per community. Anonymous runs normally receive only a public sample. |
| `maxItems`               | integer          | No       | Global cap on saved community, owner, and member rows.                                               |
| `minimumMemberCount`     | integer          | No       | Keep communities with at least this reported number of members. Use 0 for no minimum.                |
| `maximumMemberCount`     | integer          | No       | Keep communities at or below this reported number of members. Use 0 for no maximum.                  |
| `minimumLeadScore`       | integer          | No       | Keep records at or above this explainable 0 to 100 score.                                            |
| `requireContactDetails`  | boolean          | No       | Keep people with a public email, website, or social link.                                            |
| `memberStartDate`        | string           | No       | Keep members approved or joined on or after this `YYYY-MM-DD` date.                                  |
| `includeAdmins`          | boolean          | No       | Include owners, admins, and moderators returned during an authorized member scan.                    |
| `deduplicatePeople`      | boolean          | No       | Save a person once across communities instead of keeping every membership context.                   |
| `proxyConfiguration`     | object           | No       | Optional connection settings. Most runs can use the default settings.                                |

### 📤 Output

Missing source fields are omitted. The Actor never inserts placeholder values.

| Field                    | Type             | Description                                                             |
| ------------------------ | ---------------- | ----------------------------------------------------------------------- |
| `leadId`                 | string           | Stable identity for the lead record.                                    |
| `leadType`               | string           | `community`, `owner`, or `member`.                                      |
| `communityId`            | string           | Skool's source community identifier.                                    |
| `communityName`          | string           | Public community display name.                                          |
| `communitySlug`          | string           | Community slug used in Skool URLs.                                      |
| `communityUrl`           | string           | Canonical public community URL.                                         |
| `communityPublic`        | boolean          | Confirms the source passed the public-only guard.                       |
| `communityDescription`   | string           | Public community description.                                           |
| `communityMemberCount`   | number           | Reported community member count.                                        |
| `communityAdminCount`    | number           | Reported owner, admin, and moderator count.                             |
| `communityOnlineCount`   | number           | Reported currently-online member count.                                 |
| `communityPostCount`     | number           | Reported public post count.                                             |
| `communityCourseCount`   | number           | Reported course count.                                                  |
| `communityPriceAmount`   | number           | Displayed community price converted from source minor units.            |
| `communityPriceCurrency` | string           | Currency code for the displayed price.                                  |
| `communityPriceInterval` | string           | Displayed billing interval.                                             |
| `communityLogoUrl`       | string           | Public community-logo URL.                                              |
| `communityCoverUrl`      | string           | Public community-cover URL.                                             |
| `personId`               | string           | Source identifier for an owner or member.                               |
| `fullName`               | string           | Best available public display name.                                     |
| `firstName`              | string           | First name when provided by Skool.                                      |
| `lastName`               | string           | Last name when provided by Skool.                                       |
| `username`               | string           | Public Skool handle.                                                    |
| `profileUrl`             | string           | Public Skool profile URL.                                               |
| `role`                   | string           | Owner, admin, moderator, or member role.                                |
| `bio`                    | string           | Profile biography when visible.                                         |
| `location`               | string           | Published profile location.                                             |
| `timeZone`               | string           | Profile time zone when supplied.                                        |
| `email`                  | string           | Email when it is available in the returned profile.                     |
| `websiteUrl`             | string           | Website published on the profile.                                       |
| `linkedinUrl`            | string           | Published LinkedIn URL.                                                 |
| `facebookUrl`            | string           | Published Facebook URL.                                                 |
| `instagramUrl`           | string           | Published Instagram URL.                                                |
| `xUrl`                   | string           | Published X or Twitter URL.                                             |
| `youtubeUrl`             | string           | Published YouTube URL.                                                  |
| `profileImageUrl`        | string           | Public profile-image URL.                                               |
| `memberJoinedAt`         | string           | Membership creation time in ISO 8601 format.                            |
| `memberApprovedAt`       | string           | Membership approval time in ISO 8601 format.                            |
| `lastActiveAt`           | string           | Last activity time visible to the access mode.                          |
| `isOnline`               | boolean          | Whether Skool marks the person as online.                               |
| `level`                  | number           | Community level reported by Skool.                                      |
| `points`                 | number           | Community contribution points reported by Skool.                        |
| `leadScore`              | number           | Explainable qualification score from 0 to 100.                          |
| `scoreReasons`           | array of strings | Source-backed reasons that contributed to the score.                    |
| `hasContactDetails`      | boolean          | Whether a public email, website, or social link is available.           |
| `accessMode`             | string           | Whether the record used public or signed-in access.                     |
| `coverageKind`           | string           | Coverage label for the member scan.                                     |
| `reportedMembers`        | number           | Reported member total used for coverage reporting.                      |
| `membersScanned`         | number           | Unique member profiles actually scanned.                                |
| `coveragePercent`        | number           | Scanned profiles as a percentage of the reported total when calculable. |
| `coverageNote`           | string           | Plain-language coverage limit or stop condition.                        |
| `sourceUrl`              | string           | Exact Skool page associated with the record.                            |
| `scrapedAt`              | string           | Collection time in ISO 8601 format.                                     |

### 💰 Pricing

See the Pricing tab for current usage terms and rates.

### ⭐ Enjoying Skool Member Scraper?

<table width="100%" style="display:table;width:100%">
<tr>
<td style="padding:20px 24px 14px;background:#F5F3FF;border:1px solid #DDD6FE;border-left:5px solid #6D28D9;border-radius:10px 10px 0 0">
<span style="font-size:20px;letter-spacing:4px;color:#1C1917">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">Was the data useful for your research?</span><br>
<span style="font-size:14px;color:#57534E">Your review helps other researchers choose a transparent Skool data workflow and guides future improvements.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#6D28D9;border:1px solid #DDD6FE;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/skool-public-members-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### ❓ FAQ

##### What can anonymous mode collect?

It discovers public communities, public owner data, and the member sample visible without login. Anonymous member rows always use `public_sample` coverage.

##### Can it export every member?

Not anonymously. Authorized mode can request more member pages only for public communities your account already joined and is allowed to view. Source limits and safe stop conditions can still prevent complete coverage.

##### Is account access information protected?

Yes. It is protected and never included in exported results. If access is no longer valid, the run stops safely before saving those results.

##### Can it access private communities?

No. The Actor skips private communities and never bypasses access controls, challenges, or paywalls.

### 🛡️ Responsible use

- Process only data you are authorized and legally permitted to collect.
- Respect Skool's terms, platform policy, privacy rules, and community expectations.
- Do not use exported data for spam, harassment, discrimination, or deceptive outreach.
- Apply appropriate data-minimization, retention, security, and deletion rules.
- Review source links and coverage labels before making decisions from the dataset.

This documentation is operational guidance, not legal advice. You remain responsible for your account permissions, processing purpose, and downstream use.

### 🛟 Support

Use the Actor's Issues tab with the run URL, safe-to-share input, expected result, and observed coverage label. Never include account access information or personal data in a public issue.

### 🔗 Other actors

- [Subreddit Announcement Monitor: Matched Posts](https://apify.com/getascraper/reddit-community-announcement-keyword-monitor) ↗
- [Reddit Competitor Switching Signals Feed](https://apify.com/getascraper/reddit-competitor-switch-migration-feed) ↗
- [Reddit Willingness-to-Pay Evidence Miner](https://apify.com/getascraper/reddit-willingness-to-pay-evidence-miner) ↗
- [Subreddit Activity Tracker: Posting Cadence](https://apify.com/getascraper/reddit-subreddit-posting-cadence-monitor) ↗
- [ShopMy Creator Scraper](https://apify.com/getascraper/shopmy-creator-scraper) ↗

# Actor input Schema

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

Public Skool community, members, about, or discovery URLs. Community URLs return community, owner, and member leads. Discovery URLs use their q search term to find communities first.

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

Keywords to search on Skool Discovery, such as AI automation, fitness coaching, or real estate. Each query can find multiple public communities.

## `leadTypes` (type: `array`):

Choose community opportunities, public community owners, member profiles, or any combination. Member coverage depends on whether valid cookies authorize the account for that community.

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

Paste only your Skool auth\_token cookie value. The full auth\_token=... pair or complete Cookie header also works. Apify encrypts this field and the Actor never logs or returns it.

## `maxCommunities` (type: `integer`):

Maximum number of unique communities to process across direct URLs and all discovery queries.

## `maxDiscoveryPages` (type: `integer`):

Maximum number of 30-community Skool Discovery pages to request for each search query.

## `maxMembersPerCommunity` (type: `integer`):

Maximum member profiles to scan from each community. Without valid group-member authentication, Skool currently exposes only a public sample of about 30 profiles.

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

Global cap on community, owner, and member rows saved to the dataset. Increase it when exporting large authenticated groups.

## `minimumMemberCount` (type: `integer`):

Keep only communities with at least this many reported members. Set to 0 to accept every size.

## `maximumMemberCount` (type: `integer`):

Keep communities at or below this reported member count. Set to 0 for no upper limit.

## `minimumLeadScore` (type: `integer`):

Keep leads at or above this explainable 0 to 100 score. Scores reward genuine source fields such as bio, location, website, social profiles, community size, pricing, and activity.

## `requireContactDetails` (type: `boolean`):

Keep only people with an email, website, or public social profile. Community rows qualify when a public owner profile is available.

## `memberStartDate` (type: `string`):

Keep member leads approved or joined on or after this date. Leave empty to include every available join date.

## `includeAdmins` (type: `boolean`):

Include authenticated member rows whose role is not member, such as owners, admins, and moderators.

## `deduplicatePeople` (type: `boolean`):

When enabled, save a person only once even if they appear in multiple communities. Leave disabled to preserve every community membership as a separate lead context.

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

Optional network routing for transient AWS WAF or rate-limit failures. Direct requests are used by default.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.skool.com/ai-automation-society/-/members"
    }
  ],
  "searchQueries": [
    "marketing"
  ],
  "leadTypes": [
    "community",
    "owner",
    "member"
  ],
  "maxCommunities": 25,
  "maxDiscoveryPages": 5,
  "maxMembersPerCommunity": 1000,
  "maxItems": 1000,
  "minimumMemberCount": 0,
  "maximumMemberCount": 0,
  "minimumLeadScore": 0,
  "requireContactDetails": false,
  "includeAdmins": true,
  "deduplicatePeople": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

No description

## `runSummary` (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 = {
    "startUrls": [
        {
            "url": "https://www.skool.com/ai-automation-society/-/members"
        }
    ],
    "searchQueries": [
        "marketing"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/skool-public-members-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 = {
    "startUrls": [{ "url": "https://www.skool.com/ai-automation-society/-/members" }],
    "searchQueries": ["marketing"],
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/skool-public-members-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 '{
  "startUrls": [
    {
      "url": "https://www.skool.com/ai-automation-society/-/members"
    }
  ],
  "searchQueries": [
    "marketing"
  ]
}' |
apify call getascraper/skool-public-members-scraper --silent --output-dataset

```

## MCP server setup

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