# Skool Communities, Members & Classroom Scraper (`sourabhbgp/skool-scraper`) Actor

Scrape Skool.com — 10 modes: discover, community details, posts, comments, members, events, classroom, profiles, leaderboards, and in-community search. Full author and member profiles with social links. HTTP-only, no login required. $3 per 1,000 results.

- **URL**: https://apify.com/sourabhbgp/skool-scraper.md
- **Developed by:** [Sourabh Kumar](https://apify.com/sourabhbgp) (community)
- **Categories:** Social media, Lead generation
- **Features:** Limited permissions
- **Stats:** 133 total users, 38 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$3.00 / 1,000 results

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

### Skool scraper — communities, posts, comments, members, events, classroom, profiles, leaderboards & search

Scrape every public surface of Skool.com — communities, posts, comments, members, events, classroom lessons, user profiles, leaderboards, and in-community search — through one HTTP-only actor. Ten modes, one slug, no login required.

**$3.00 per 1,000 results.** Pay-per-result, no per-run fee.

Works on every Skool community in any language. The actor talks to Skool's `_next/data` JSON, not its rendered HTML, so it's faster and cheaper than browser-based scrapers — and you won't get rate-limited the way headless setups do.

### Why this Skool scraper?

- 💰 **Pay only for results.** $3 per 1,000 items, no per-run fee, no monthly minimum.
- ⚡ **HTTP-only, no browser.** Skool's SSR JSON is the source. Faster than headless, no Cloudflare drama.
- 🧭 **One actor, ten modes.** Discover, community, posts, comments, members, events, classroom, profile, leaderboards, search — same input shape, same output dataset. No juggling six separate scrapers.
- 👤 **Full author & member enrichment** on every record — bio, location, LinkedIn, Twitter / X, YouTube, Instagram, level, points.
- 🧑‍🤝‍🧑 **Members at scale.** Up to 50,000 members per community across `member`, `admin`, and `online` tabs.
- 🌍 **Works on any community in any language.** No login, no cookie, no captcha solver.

### What data can you extract?

<table>
  <tr>
    <td>🏠 Community name</td>
    <td>👥 Member count</td>
    <td>💲 Price & interval</td>
    <td>🗒️ Description</td>
  </tr>
  <tr>
    <td>📝 Post content</td>
    <td>👍 Upvotes</td>
    <td>💬 Full comment tree</td>
    <td>📌 Pinned comments</td>
  </tr>
  <tr>
    <td>🧑 Member bio</td>
    <td>📍 Location</td>
    <td>🔗 Social links</td>
    <td>⭐ Level & points</td>
  </tr>
  <tr>
    <td>📚 Lesson videos</td>
    <td>📅 Calendar events</td>
    <td>🏆 Leaderboard rank</td>
    <td>📈 12-month activity</td>
  </tr>
</table>

### Scraping modes

Ten modes share one input. Pick the mode and paste the matching JSON. Each result counts as one billed item.

#### 🔍 Discover

Search Skool's community directory by keyword. Returns up to 1,000 communities across 34 paginated pages with member counts, pricing, and rank.

```json
{
  "mode": "discover",
  "query": "marketing",
  "maxResults": 100
}
```

#### 🏠 Community

Pull one community's full profile — description, pricing, cover images, and the top 30-day contributors with social links and bios.

```json
{
  "mode": "community",
  "communityUrl": "https://www.skool.com/ai-automation-society"
}
```

#### 📝 Posts

Scrape the community feed. Returns post content, author, upvote count, comment count, and timestamps. Optional `channelId` filters to a single channel.

```json
{
  "mode": "posts",
  "communityUrl": "ai-automation-society",
  "maxPosts": 100
}
```

#### 💬 Comments

Posts plus the full comment tree per post — every reply, every author profile, every pinned comment. Pinned comments are returned first with `isPinned: true`.

```json
{
  "mode": "comments",
  "communityUrl": "ai-automation-society",
  "maxPosts": 50,
  "maxCommentsPerPost": 100,
  "maxRepliesPerComment": 50
}
```

#### 🧑‍🤝‍🧑 Members

Paginated member dump with full profile enrichment — bio, location, level, points, social links. `memberTab` selects `member` (everyone), `admin`, or `online`. Capped at 50,000.

```json
{
  "mode": "members",
  "communityUrl": "ai-automation-society",
  "memberTab": "member",
  "maxMembers": 1000
}
```

#### 📅 Events

Calendar events for the community: title, description, start/end times in ISO with timezone, location type (Zoom / Google Meet / URL), and access flag.

```json
{
  "mode": "events",
  "communityUrl": "ai-automation-society"
}
```

#### 📚 Classroom

Full course/lesson tree. One record per module — course title, lesson title, video URL (Loom / YouTube / Wistia), thumbnail, video length in ms, and whether the run had access.

```json
{
  "mode": "classroom",
  "communityUrl": "ai-automation-society",
  "lessonsPerCourse": 100
}
```

#### 👤 Profile

Look up any Skool user by username. Returns one record with bio, social links, follower / post / contribution totals, communities they're in, and a 12-month daily-activity histogram.

```json
{
  "mode": "profile",
  "username": "nateherk"
}
```

#### 🏆 Leaderboards

A community's three windowed leaderboards (all-time, past 7 days, past 30 days) plus its 9 group-level definitions. `leaderboardWindow: "all"` returns 39 records in one call.

```json
{
  "mode": "leaderboards",
  "communityUrl": "ai-automation-society",
  "leaderboardWindow": "all"
}
```

#### 🔎 Search

In-community search across posts, members, or courses. Returns up to ~10 top matches per call.

```json
{
  "mode": "search",
  "communityUrl": "ai-automation-society",
  "searchQuery": "automation",
  "searchType": "members"
}
```

### How to scrape Skool: step by step

1. [Create a free Apify account](https://console.apify.com/sign-up). Takes 30 seconds, no card needed.
2. Open [Skool Scraper](https://console.apify.com/actors/PGhj4wBJV6WLDSd5J?addFromActorId=PGhj4wBJV6WLDSd5J) in the Apify Console.
3. Paste input. Pick a `mode`, then fill the matching field — `query` for discover, `communityUrl` for community-scoped modes, `username` for profile.
4. Click **Start**. A typical posts or members run finishes in 30–90 seconds.
5. Export as JSON, CSV, or Excel — or fetch via the Apify API.

### How much does Skool Scraper cost?

- **Per 1,000 results:** $3.00
- **Free plan ($5 credits):** roughly 1,666 results
- **Starter plan ($29/month):** about 9,666 results per month

No per-run fee, no subscription lock-in. You're billed once per output record regardless of mode — a community, a post, a comment, a lesson, a leaderboard entry. Compute is included in the per-result price for HTTP-only runs.

### Input

```json
{
  "mode": "comments",
  "communityUrl": "ai-automation-society",
  "maxPosts": 50,
  "maxCommentsPerPost": 100,
  "maxRepliesPerComment": 50,
  "channelId": ""
}
```

| Field                  | Type    | Default    | Notes                                                                                                                       |
| ---------------------- | ------- | ---------- | --------------------------------------------------------------------------------------------------------------------------- |
| `mode`                 | string  | `discover` | One of `discover`, `community`, `posts`, `comments`, `members`, `events`, `classroom`, `profile`, `leaderboards`, `search`. |
| `query`                | string  | —          | Discover mode keyword. Leave empty for top-ranked communities.                                                              |
| `communityUrl`         | string  | —          | URL or slug. Required for every community-scoped mode.                                                                      |
| `username`             | string  | —          | Required for `profile` mode. With or without `@`.                                                                           |
| `searchQuery`          | string  | —          | Required for `search` mode.                                                                                                 |
| `searchType`           | string  | `posts`    | `posts`, `members`, or `courses`.                                                                                           |
| `leaderboardWindow`    | string  | `all`      | `allTime`, `past7`, `past30`, or `all`.                                                                                     |
| `memberTab`            | string  | `member`   | `member`, `admin`, or `online`.                                                                                             |
| `maxResults`           | integer | 100        | Discover. Hard cap 1,000.                                                                                                   |
| `maxPosts`             | integer | 100        | Posts / comments. Hard cap 1,000.                                                                                           |
| `maxCommentsPerPost`   | integer | 100        | Top-level comments only. Hard cap 500.                                                                                      |
| `maxRepliesPerComment` | integer | 50         | Applied at every reply nesting level.                                                                                       |
| `maxMembers`           | integer | 1000       | Hard cap 50,000.                                                                                                            |
| `lessonsPerCourse`     | integer | 100        | Classroom mode. Hard cap 1,000.                                                                                             |
| `channelId`            | string  | —          | Optional. Posts mode only. UUIDs come from a community's `labels` field.                                                    |
| `proxyConfiguration`   | object  | auto-tier  | Optional override. By default the actor auto-tiers direct → datacenter → residential.                                       |

### Output

#### Discover / Community

```json
{
  "name": "AI Automation Society",
  "slug": "ai-automation-society",
  "url": "https://www.skool.com/ai-automation-society",
  "description": "Learn to automate your business with AI tools and workflows.",
  "memberCount": 18432,
  "price": 49.0,
  "currency": "usd",
  "priceInterval": "month",
  "rank": 3,
  "logoUrl": "https://...",
  "coverUrl": "https://...",
  "createdAt": "2023-06-15T00:00:00.000Z"
}
```

#### Posts

```json
{
  "postId": "abc123",
  "title": "How I automated my entire sales funnel in 3 hours",
  "slug": "how-i-automated-my-entire-sales-funnel-in-3-hours",
  "url": "https://www.skool.com/ai-automation-society/classroom/abc123",
  "content": "Here's the exact workflow I used...",
  "authorName": "Jane Smith",
  "authorId": "user_xyz",
  "commentCount": 24,
  "upvotes": 87,
  "hasVideo": false,
  "createdAt": "2026-03-15T14:22:00.000Z",
  "communityName": "ai-automation-society",
  "communitySlug": "ai-automation-society"
}
```

#### Comments (extends Posts)

```json
{
  "postId": "abc123",
  "title": "How I automated my entire sales funnel in 3 hours",
  "authorName": "Jane Smith",
  "comments": [
    {
      "commentId": "cmt456",
      "content": "This is exactly what I needed. Which tool did you use for the email step?",
      "upvotes": 12,
      "isPinned": false,
      "authorName": "Bob Lee",
      "authorBio": "Founder @ SaaS startup. Building in public.",
      "authorLinkedIn": "https://linkedin.com/in/boblee",
      "authorTwitter": "https://twitter.com/boblee",
      "authorLocation": "Austin, TX",
      "createdAt": "2026-03-15T16:45:00.000Z",
      "replies": []
    }
  ]
}
```

#### Members

```json
{
  "userId": "cb180ec6...",
  "firstName": "Selina",
  "lastName": "T.",
  "bio": "Building in public. Bali → Berlin.",
  "location": "Bali",
  "online": true,
  "role": "member",
  "level": 4,
  "points": 312,
  "linkedIn": "https://linkedin.com/in/selina",
  "instagram": "",
  "approvedAt": "2025-08-12T14:22:01.000Z",
  "lastOffline": "2026-05-07T03:11:55.000Z",
  "communitySlug": "ai-automation-society"
}
```

#### Events

```json
{
  "eventId": "8c9c5384...",
  "occurrenceId": "1777298400",
  "title": "🔒 Q&A w/ Nate",
  "description": "Become a plus member to unlock weekly calls with Nate!",
  "locationType": 4,
  "locationInfo": "https://www.skool.com/ai-automation-society-plus/about",
  "timezone": "America/Chicago",
  "startTime": "2026-04-27T09:00:00-05:00",
  "endTime": "2026-04-27T09:30:00-05:00",
  "hasAccess": true,
  "groupId": "b51c5715...",
  "communitySlug": "ai-automation-society"
}
```

#### Classroom (one record per lesson)

```json
{
  "courseId": "993c60aa...",
  "courseTitle": "Start Here",
  "lessonId": "87dcf10a...",
  "lessonSlug": "e5bf37d5",
  "lessonTitle": "Rules and Guidelines 🛠️",
  "videoUrl": "https://www.loom.com/share/4f12b4e1...",
  "videoThumbnailUrl": "https://cdn.loom.com/sessions/thumbnails/...",
  "videoLengthMs": 67238,
  "hasAccess": true,
  "orderInCourse": 0,
  "communitySlug": "ai-automation-society"
}
```

#### Profile

```json
{
  "userId": "fcb8f1ac...",
  "username": "nateherk",
  "firstName": "Nate",
  "lastName": "Herk",
  "bio": "Founder & CEO @ Uppit AI. Sharing my knowledge of AI Automations through YouTube.",
  "mrrStatus": "diamond",
  "linkedIn": "https://www.linkedin.com/in/nateherkelman/",
  "instagram": "https://www.instagram.com/nateherk/",
  "youtube": "https://www.youtube.com/@nateherk",
  "website": "https://nateherk.com/",
  "totalPosts": 4382,
  "totalFollowers": 374227,
  "totalFollowing": 20,
  "totalContributions": 4382,
  "groupsMemberOf": [
    {
      "slug": "skoolers",
      "name": "Skool Community",
      "memberCount": 190000,
      "price": null
    }
  ],
  "dailyActivities": {
    "startDate": "2025-05-12T00:00:00Z",
    "endDate": "2026-05-07T00:00:00Z",
    "counts": []
  },
  "createdAt": "2024-08-22T15:27:52.000Z"
}
```

#### Leaderboards

```json
{
  "window": "allTime",
  "rank": 1,
  "points": 38918,
  "userId": "5b265f64...",
  "firstName": "Muskan",
  "lastName": "Ahlawat",
  "bio": "AI Automation for PI Law Firms",
  "instagram": "https://www.instagram.com/muskanahl2623",
  "youtube": "https://youtube.com/@muskancreates-g4l",
  "profilePicUrl": "https://assets.skool.com/f/...-md.jpg",
  "communitySlug": "ai-automation-society"
}
```

With `leaderboardWindow: "all"` you also get 9 group-level records:

```json
{
  "type": "level",
  "number": 1,
  "name": "Level 1",
  "title": "AI Explorer 🛠️",
  "percentOfMembers": 90,
  "communitySlug": "ai-automation-society"
}
```

#### Search

Reuses the `Posts`, `Members`, or `Classroom` shape depending on `searchType`. Up to ~10 top matches per call.

### Use cases

- 📊 **Market research.** Discover the top-ranked communities in any niche — compare member counts, pricing, and growth signals.
- 🔍 **Competitive analysis.** Watch competitor communities. See which topics drive engagement and who the top contributors are.
- 🧲 **Lead generation.** Members and comments modes both surface active members with bio, location, and social links. Find your ideal customers where they already hang out.
- 📈 **Content benchmarking.** Pull thousands of posts with upvote and comment counts to identify what works in a niche.
- 👥 **Influencer discovery.** Community mode returns the top 30-day contributors with full social links. Niche micro-influencers without the agency markup.
- 📚 **Curriculum benchmarking.** Classroom mode pulls a community's full lesson tree (titles, video durations, descriptions) for cohort comparisons.
- 📅 **Event tracking.** Events mode returns the calendar (Zoom / Google Meet / URL) — useful for monitoring competitor cadence.
- 🥇 **Leaderboard analytics.** All-time / past-7-days / past-30-days leaderboards plus the community's group level definitions in one call.

### Limitations

- **Discover caps at 1,000 results per query.** Skool's directory enforces a global `numGroups: 1000` limit across 34 paginated pages. Run multiple queries with different keywords for broader coverage.
- **No email addresses.** Skool does not expose member emails on any public page.
- **Private communities return metadata only.** You can discover a private community (name, member count, price) but cannot scrape its posts, members, or classroom without membership.
- **Post sorting is fixed.** Skool's SSR always returns posts sorted by latest comment activity. No "most upvoted" sort is exposed.
- **Public data only.** This scraper only reaches content visible to logged-out users on public Skool pages.

### FAQ

#### How much does Skool Scraper cost?

Skool Scraper uses pay-per-result pricing. You pay **$3.00 for 1,000 results**. The Apify Free plan gives you $5 in usage credits a month, enough for around 1,666 results. If you run regularly, the $29/month Starter plan covers about 9,666 results.

No subscription lock-in. Pause whenever.

#### Is it legal to scrape Skool?

Scraping public data is generally allowed in the US and most of the EU, as long as you don't collect personal data covered by GDPR or CCPA without a lawful basis. This actor only touches publicly accessible Skool pages, but how you use the output is on you.

Apify's full breakdown: [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/).

#### Can I integrate Skool Scraper with other tools?

Push results into **Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive**, and more. Apify treats every actor as a webhook source, so anything that consumes webhooks or pulls from an API works.

Full list: [Apify integrations](https://docs.apify.com/platform/integrations).

#### Can I use Skool Scraper with the Apify API?

Yes. Every run is available via the Apify REST API:

```bash
curl -X POST "https://api.apify.com/v2/acts/sourabhbgp~skool-scraper/runs?token=APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode": "posts", "communityUrl": "ai-automation-society", "maxPosts": 50}'
```

Docs: [Apify API reference](https://docs.apify.com/api/v2).

#### Can I use Skool Scraper through an MCP Server?

Yes. Apify ships an MCP server that exposes every actor as a tool, so Claude Desktop, Cursor, and any other MCP-capable client can call Skool Scraper. Setup: [Apify MCP docs](https://docs.apify.com/platform/integrations/mcp).

### Your feedback

Bug, missing field, or odd behavior? Drop a note in the [Issues tab](https://console.apify.com/actors/PGhj4wBJV6WLDSd5J/issues). Reports go to a human and fixes usually ship the same week.

# Actor input Schema

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

What to scrape: discover communities, community details, posts, or posts with comments.

## `query` (type: `string`):

Search term for discover mode. Leave empty for top-ranked communities.

## `communityUrl` (type: `string`):

Skool community URL or slug. Required for community, posts, and comments modes. Example: https://www.skool.com/ai-automation-society or just ai-automation-society

## `username` (type: `string`):

Required for profile mode. Example: nateherk or @nateherk.

## `maxResults` (type: `integer`):

Maximum communities to return in discover mode. Skool returns up to 30 per page across 34 pages (1000 total cap).

## `maxPosts` (type: `integer`):

Maximum posts to scrape in posts or comments mode. If you omit this field entirely, the platform uses 50.

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

Maximum top-level comments to fetch per post in comments mode. Replies on each comment are capped separately by maxRepliesPerComment. If you omit this field entirely, the platform uses 50.

## `maxRepliesPerComment` (type: `integer`):

Maximum replies to keep on each comment in comments mode. Applied recursively — each comment in the tree caps its replies array at this value. Default 50 covers typical posts; raise for highly active threads.

## `memberTab` (type: `string`):

Which members to fetch: all, admins, or online.

## `maxMembers` (type: `integer`):

Maximum members to return. Skool exposes all members of a public community across paginated /-/members pages (30/page). Capped at 50000 to prevent runaway runs.

## `channelId` (type: `string`):

Optional. Filter posts to a specific channel within the community. Channel UUIDs come from currentGroup.metadata.labels (comma-separated string on the /about page).

## `leaderboardWindow` (type: `string`):

Time window: allTime, past7, past30, or all (returns all three windows + group levels).

## `searchQuery` (type: `string`):

Required for search mode. Searches posts, members, or courses inside the given community.

## `searchType` (type: `string`):

What to search inside the community. Note: 'courses' returns LESSONS matching the query, grouped by their parent course (each record has both lessonTitle and courseTitle).

## `lessonsPerCourse` (type: `integer`):

Maximum lessons (modules) to return per course in classroom mode. Each course typically has 1-100 modules.

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

Optional. By default the actor auto-tiers direct → datacenter → residential, falling through on blocks. Override here to force a specific tier (e.g. for private communities or rate-limited workloads).

## Actor input object example

```json
{
  "mode": "discover",
  "query": "marketing",
  "communityUrl": "ai-automation-society",
  "username": "nateherk",
  "maxResults": 100,
  "maxPosts": 50,
  "maxCommentsPerPost": 50,
  "maxRepliesPerComment": 50,
  "memberTab": "member",
  "maxMembers": 1000,
  "leaderboardWindow": "all",
  "searchQuery": "automation",
  "searchType": "posts",
  "lessonsPerCourse": 100,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

Records from the selected mode (one of 10 modes). Each mode emits records with a different shape — see the dataset views for per-mode column presets.

# 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 = {
    "mode": "discover",
    "query": "marketing",
    "communityUrl": "ai-automation-society",
    "username": "nateherk",
    "maxResults": 100,
    "maxPosts": 50,
    "maxCommentsPerPost": 50,
    "maxRepliesPerComment": 50,
    "memberTab": "member",
    "maxMembers": 1000,
    "leaderboardWindow": "all",
    "searchQuery": "automation",
    "searchType": "posts",
    "lessonsPerCourse": 100,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("sourabhbgp/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 = {
    "mode": "discover",
    "query": "marketing",
    "communityUrl": "ai-automation-society",
    "username": "nateherk",
    "maxResults": 100,
    "maxPosts": 50,
    "maxCommentsPerPost": 50,
    "maxRepliesPerComment": 50,
    "memberTab": "member",
    "maxMembers": 1000,
    "leaderboardWindow": "all",
    "searchQuery": "automation",
    "searchType": "posts",
    "lessonsPerCourse": 100,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("sourabhbgp/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 '{
  "mode": "discover",
  "query": "marketing",
  "communityUrl": "ai-automation-society",
  "username": "nateherk",
  "maxResults": 100,
  "maxPosts": 50,
  "maxCommentsPerPost": 50,
  "maxRepliesPerComment": 50,
  "memberTab": "member",
  "maxMembers": 1000,
  "leaderboardWindow": "all",
  "searchQuery": "automation",
  "searchType": "posts",
  "lessonsPerCourse": 100,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call sourabhbgp/skool-scraper --silent --output-dataset

```

## MCP server setup

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