# Skool Members Scraper (`memo23/skool-members-scraper-rent`) Actor

Boost your business leads with our Skool.com Groups' Members/Users Scraper. Gather user details like names, emails, and social media links (Facebook, Instagram, LinkedIn, Twitter, etc.). It is ideal for market research, competitor analysis, and lead generation. Save time with our advanced scraper.

- **URL**: https://apify.com/memo23/skool-members-scraper-rent.md
- **Developed by:** [Muhamed Didovic](https://apify.com/memo23) (community)
- **Categories:** Lead generation, Social media
- **Stats:** 196 total users, 2 monthly users, 75.0% runs succeeded, 11 bookmarks
- **User rating**: 2.94 out of 5 stars

## Pricing

from $2.50 / 1,000 members/users

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

### Overview

This is a renting version of the Skool.com Member Scraper, you can check the also the pay per results version: <a href="https://apify.com/memo23/skool-members-scraper">Here</a>

Unleash the full potential of Skool.com data with our Skool.com Groups' Members/Users Scraper. Gather extensive user details such as first and last name, bio, location, and profile links (facebook, instagram, linkedin, twitter, website, youtube, and more). Emails and phone numbers can additionally be pulled from members' linked websites where available (see the Include Contacts feature below). This tool is designed to automate the data extraction process, ensuring you receive accurate and up-to-date information for market research, competitor analysis, and lead generation. Save time and resources by leveraging our advanced scraper to explore Skool.com's vast database of user/member profiles.

### Features

- Multiple Page Scraping: Capable of scraping data from a variety of page URLs. Input can either be formatted as `https://www.skool.com/{group-name}/-/members` or you can directly copy and paste the skool's members URL like: https://www.skool.com/@bjk
- Authentication Requirement: To enable more extensive scraping capabilities, users are required to log in using cookie-based authentication and you need to be member or part of the group that you want to scrape.
- Customizable Configuration: Offers adjustable settings to cater to a wide range of data extraction requirements.
- Member Details: Option to include detailed profile information for each member, including their contributions, group memberships, and daily activities.

### How to Use

1. **Set Up**: Create an account on Apify if you haven't already, and navigate to the Skool.com Members/Users Scraper actor.
2. **Install** <a href="https://chromewebstore.google.com/detail/cookie-editor/hlkenndednhfkekhgcdicdfddnkalmdm">Cookie-Editor (there is option to Export cookies as JSON)</a> or <a href="https://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg" target="_blank" rel="noopener noreferrer nofollow ugc" previewlistener="true">EditThisCookie</a> chrome extension.
3. **Login** to your https://www.skool.com/ account
4. While you are on **Skool tab**, Click on the extension and export the cookies
5. **Paste** the cookies to this actor's Cookie input field (delete everything before pasting in it)
6. **Specify** the Skool's members URL you want to scrape. Input your URLs in the format `https://www.skool.com/{group-name}/-/members`. You can add multiple URLs for a broader scraping scope
7. **Configure Member Details**: Choose whether to include detailed profile information for each member by setting the `includeProfileDetails` option.
8. (Optional) **Customize Settings**: Adjust the scraper settings to your preference, including the max number of listings to scrape, maximum concurrency, include admin users when scraping, minimum concurrency, max request retries and any specific data fields you wish to collect.
9. (Optional)**Bypass Site Protection**: In order to bypass the protection of the site, use residential proxies from the country where you are scraping from. This approach helps in mimicking the behavior of a regular user from that region, minimizing the risk of detection and blocking.
10. **Run the Scraper**: Launch the scraper on the Apify platform. You can monitor its progress and adjust settings as needed.
11. **Data Collection**: Extracted data will be available in your preferred format, with support for JSON, HTML, CSV, Excel, and other formats provided by Apify.

## Input Data

To initiate a search, you can provide input data in JSON format. Below is an example configuration for scraping agents with proxies and max items set to 100 and etc:

```json
{
    "startUrls": [
        {
            "url": "https://www.skool.com/ai-automation-mastery/-/members"
        }
    ],
    "includeAdminUsers": true,
    "includeProfileDetails": true,
    "maxConcurrency": 10,
    "minConcurrency": 1,
    "maxRequestRetries": 10,
    "maxItems": 100,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
}
```

### Output Structure

The scraper outputs data in the following structure:

```json
{
    "id": "4a24a427197a4bbc85e5885b428a2c97",
    "name": "user-handle",
    "metadata": {
        "bio": "Entrepreneur",
        "chatRequest": 1,
        "lastOffline": 1717342221380186600,
        "linkFacebook": "omitted",
        "linkInstagram": "omitted",
        "linkLinkedin": "omitted",
        "linkTwitter": "omitted",
        "linkWebsite": "omitted",
        "linkYoutube": "omitted",
        "location": "omitted",
        "myersBriggs": "omitted",
        "pictureBubble": "https://assets.skool.com/f/4a24a427197a4bbc85e5885b428a2c96/fbdaab1734e3475badeb8d623971150db9087c59f7014a778b5d2bf151f1242d-sm.jpg",
        "pictureProfile": "https://assets.skool.com/f/4a24a427197a4bbc85e5885b428a2c96/fbdaab1734e3475badeb8d623971150db9087c59f7014a778b5d2bf151f1242d-md.jpg",
        "spData": "{\"pts\":0,\"lv\":1,\"pcl\":0,\"pnl\":5,\"role\":4}"
    },
    "createdAt": "2023-07-10T19:44:30.97666Z",
    "updatedAt": "2024-06-02T15:30:21.357076Z",
    "email": "",
    "firstName": "Justa",
    "lastName": "Virviciu",
    "member": {
        "id": "ebf0a6e7a2604acd87faba52f604d88c",
        "metadata": {
            "requestedAt": 1717318750118407000
        },
        "createdAt": "2024-06-02T08:59:10.117196Z",
        "updatedAt": "2024-06-02T15:30:21.394724Z",
        "userId": "4a24a427197a4bbc85e5885b428a2c96",
        "groupId": "084f62bdfd304b36a03cdc3dd0e55ea2",
        "role": "member",
        "approvedAt": "2024-06-02T14:49:13.128522Z",
        "lastOffline": "2024-06-02T15:30:21.394724Z"
    }
}..
```

### Related scrapers

[Skool Posts(Content) with Comments Scraper](https://apify.com/memo23/skool-posts-with-comments-scraper) - unlock valuable insights from Skool.com discussions. Extract comprehensive post data and nested comments with ease, empowering your community analysis and content strategy.

### Support

- For issues or feature requests, please use the [Issues](https://console.apify.com/actors/FkSyirPKKsZHyKuGC/issues) section of this actor.
- If you need customization or have questions, feel free to contact the author:
  - Author's website: <https://muhamed-didovic.github.io/>
  - Email: <muhamed.didovic@gmail.com>

### Additional Services

- Request customization or whole dataset: <muhamed.didovic@gmail.com>
- If you need anything else scraped, or this actor customized, email: <muhamed.didovic@gmail.com>
- For API services of this scraper (no Apify fee, just usage fee for the API), contact: <muhamed.didovic@gmail.com>

# Actor input Schema

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

Enter Skool.com URLs or search keywords to scrape. Keywords will be automatically converted to discovery URLs (e.g., 'Shopify course' becomes 'https://www.skool.com/discovery?q=Shopify%20course').

## `monitoringMode` (type: `boolean`):

If checked, it will only scrape newly items compared to what has been scraped in previous runs. Only works for discovery routes.

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

Format should be YYYY-MM-DD, e.g., 2022-02-20

## `includeAdminUsers` (type: `boolean`):

Set to true if you want to include admin users in the scraping.

## `includeProfileDetails` (type: `boolean`):

Set to true if you want to include profile details of each member in the scraping.

## `includeContactsFromWebsite` (type: `boolean`):

Set to true if you want to include contacts from website (if website is present on the user account) like emails, phones, LinkedIns, Twitters, Instagrams, Facebooks, YouTubes, TikToks, Pinterests, Discords in the scraping.

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

Maximum number of members (or discovery items) to collect. Pagination depth per URL/search query is capped from this value so you do not need a separate page limit.

## `maxConcurrency` (type: `integer`):

Maximum number of pages that can be processed at the same time.

## `minConcurrency` (type: `integer`):

Minimum number of pages that will be processed at the same time.

## `maxRequestRetries` (type: `integer`):

Number of times the crawler will retry a failed request before giving up.

## `alphabetSearchRefinement` (type: `boolean`):

If a one-letter member search returns a full first page (≥10 users), also search that letter plus each suffix a–z and 0–9 (36 extra queries per saturated letter). Improves coverage when Skool truncates single-letter results; increases HTTP usage.

## `cookies` (type: `array`):

<p>Cookie used to authorize actor with skool.com. Install <a rel="noopener noreferrer nofollow" target="_blank" href="https://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg" previewlistener="true">EditThisCookie</a> chrome extension. Login to your skool.com account. Click on the extension and export the skool.com cookies. Insert the contents here</p>
## `proxy` (type: `object`):

Specifies proxy servers that will be used by the scraper in order to hide its origin.<br><br>For details, see <a href='https://apify.com/apify/web-scraper#proxy-configuration' target='_blank' rel='noopener'>Proxy configuration</a> in README.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.skool.com/ai-automation-mastery/-/members",
    "https://www.skool.com/discovery?q=tiktok%20trending"
  ],
  "monitoringMode": false,
  "includeAdminUsers": false,
  "includeProfileDetails": false,
  "includeContactsFromWebsite": false,
  "maxItems": 100000,
  "maxConcurrency": 100,
  "minConcurrency": 1,
  "maxRequestRetries": 30,
  "alphabetSearchRefinement": true,
  "cookies": [],
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `overview` (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": [
        "https://www.skool.com/ai-automation-mastery/-/members",
        "https://www.skool.com/discovery?q=tiktok%20trending"
    ],
    "cookies": [],
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("memo23/skool-members-scraper-rent").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": [
        "https://www.skool.com/ai-automation-mastery/-/members",
        "https://www.skool.com/discovery?q=tiktok%20trending",
    ],
    "cookies": [],
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("memo23/skool-members-scraper-rent").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": [
    "https://www.skool.com/ai-automation-mastery/-/members",
    "https://www.skool.com/discovery?q=tiktok%20trending"
  ],
  "cookies": [],
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call memo23/skool-members-scraper-rent --silent --output-dataset

```

## MCP server setup

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

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/fQuUYLIpVzY2cD6C7/builds/AJMYl920Tw2XDPBp0/openapi.json
