{
  "data": {
    "id": "tjgDxDV8AsB1A3KHA",
    "actId": "9EPFdk1OYOKL8zvqC",
    "userId": "zq8lKbpLzTjGDayPC",
    "startedAt": "2026-11-01T11:16:34.508Z",
    "finishedAt": "2026-11-01T11:16:51.138Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 16571,
      "runTimeSecs": 16.571,
      "computeUnits": 0.018412222222222222,
      "imageSizeBytes": 361158656
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "GK9YjZRyQZVzOdoH5",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"Skool Communities & Courses Scraper Input\",\n  \"description\": \"Scrape public Skool communities, courses, and visible member lists. Browse the community directory, get details for specific communities, or list members from public communities.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"mode\": {\n      \"title\": \"Mode\",\n      \"type\": \"string\",\n      \"description\": \"What to scrape: discover communities from the directory, get details for specific communities, or list visible members.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"discover\",\n        \"getCommunity\",\n        \"getMembers\"\n      ],\n      \"enumTitles\": [\n        \"Discover communities (browse directory)\",\n        \"Get community details (by URL or slug)\",\n        \"Get visible members (from public community)\"\n      ],\n      \"default\": \"discover\",\n      \"prefill\": \"discover\"\n    },\n    \"searchQueries\": {\n      \"title\": \"Search keywords (mode=discover)\",\n      \"type\": \"array\",\n      \"description\": \"Keywords to search the Skool directory for, e.g. [\\\"ai automation\\\", \\\"fitness\\\"]. Leave empty to browse the selected category and sort order.\",\n      \"editor\": \"stringList\",\n      \"default\": [],\n      \"prefill\": [\n        \"ai\"\n      ]\n    },\n    \"startUrls\": {\n      \"title\": \"Community URLs (mode=getCommunity / getMembers)\",\n      \"type\": \"array\",\n      \"description\": \"Skool community URLs, e.g. https://www.skool.com/the-skool-of-life.\",\n      \"editor\": \"stringList\",\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"slugs\": {\n      \"title\": \"Community slugs (mode=getCommunity / getMembers)\",\n      \"type\": \"array\",\n      \"description\": \"Community slugs from the Skool URL, e.g. [\\\"the-skool-of-life\\\", \\\"buildwithskool\\\"]. Alternative to startUrls.\",\n      \"editor\": \"stringList\",\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"categorySlug\": {\n      \"title\": \"Category (mode=discover)\",\n      \"type\": \"string\",\n      \"description\": \"Browse one of Skool's nine directory categories, or all categories. Filtering by category also fills the category fields on each community.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"all\",\n        \"hobbies\",\n        \"music\",\n        \"money\",\n        \"spirituality\",\n        \"tech\",\n        \"health\",\n        \"sports\",\n        \"self_improvement\",\n        \"relationships\"\n      ],\n      \"enumTitles\": [\n        \"All categories\",\n        \"Hobbies\",\n        \"Music\",\n        \"Money\",\n        \"Spirituality\",\n        \"Tech\",\n        \"Health\",\n        \"Sports\",\n        \"Self-improvement\",\n        \"Relationships\"\n      ],\n      \"default\": \"all\",\n      \"prefill\": \"all\"\n    },\n    \"priceType\": {\n      \"title\": \"Price (mode=discover)\",\n      \"type\": \"string\",\n      \"description\": \"Filter communities by membership price: free, paid, or free trial.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"all\",\n        \"free\",\n        \"paid\",\n        \"free-trial\"\n      ],\n      \"enumTitles\": [\n        \"All prices\",\n        \"Free\",\n        \"Paid\",\n        \"Free trial\"\n      ],\n      \"default\": \"all\",\n      \"prefill\": \"all\"\n    },\n    \"category\": {\n      \"title\": \"Category (legacy alias)\",\n      \"type\": \"string\",\n      \"description\": \"Deprecated alias for categorySlug kept so saved tasks keep working. categorySlug takes precedence when both are set.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"\",\n        \"Technology\",\n        \"Business\",\n        \"Health & Fitness\",\n        \"Arts & Creativity\",\n        \"Education\",\n        \"Gaming\",\n        \"Lifestyle\",\n        \"Finance\",\n        \"Marketing\",\n        \"Other\"\n      ],\n      \"enumTitles\": [\n        \"All categories\",\n        \"Technology\",\n        \"Business\",\n        \"Health & Fitness\",\n        \"Arts & Creativity\",\n        \"Education\",\n        \"Gaming\",\n        \"Lifestyle\",\n        \"Finance\",\n        \"Marketing\",\n        \"Other\"\n      ],\n      \"default\": \"\",\n      \"prefill\": \"\"\n    },\n    \"isFree\": {\n      \"title\": \"Free communities only (legacy alias)\",\n      \"type\": \"boolean\",\n      \"description\": \"Deprecated alias for priceType=free kept so saved tasks keep working. priceType takes precedence when set.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"communityType\": {\n      \"title\": \"Community type (mode=discover)\",\n      \"type\": \"string\",\n      \"description\": \"Filter the directory by public or private communities.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"all\",\n        \"public\",\n        \"private\"\n      ],\n      \"enumTitles\": [\n        \"All communities\",\n        \"Public\",\n        \"Private\"\n      ],\n      \"default\": \"all\",\n      \"prefill\": \"all\"\n    },\n    \"language\": {\n      \"title\": \"Language (mode=discover)\",\n      \"type\": \"string\",\n      \"description\": \"Filter the directory by the community's language.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"all\",\n        \"english\",\n        \"german\",\n        \"spanish\",\n        \"french\",\n        \"chinese\",\n        \"italian\",\n        \"dutch\",\n        \"vietnamese\",\n        \"arabic\",\n        \"hebrew\",\n        \"danish\",\n        \"romanian\",\n        \"turkish\",\n        \"polish\",\n        \"czech\",\n        \"hungarian\",\n        \"swedish\",\n        \"portuguese\",\n        \"bulgarian\",\n        \"norwegian\",\n        \"finnish\",\n        \"croatian\",\n        \"latvian\",\n        \"slovak\",\n        \"serbian\",\n        \"mongolian\",\n        \"haitian\",\n        \"thai\",\n        \"slovenian\",\n        \"russian\",\n        \"lithuanian\",\n        \"amharic\",\n        \"malay\",\n        \"estonian\",\n        \"greek\",\n        \"ukrainian\",\n        \"swahili\",\n        \"japanese\",\n        \"filipino\",\n        \"persian\",\n        \"welsh\",\n        \"korean\",\n        \"cantonese\",\n        \"indonesian\",\n        \"latin\",\n        \"bengali\",\n        \"catalan\",\n        \"hindi\"\n      ],\n      \"enumTitles\": [\n        \"All languages\",\n        \"English\",\n        \"German\",\n        \"Spanish\",\n        \"French\",\n        \"Chinese\",\n        \"Italian\",\n        \"Dutch\",\n        \"Vietnamese\",\n        \"Arabic\",\n        \"Hebrew\",\n        \"Danish\",\n        \"Romanian\",\n        \"Turkish\",\n        \"Polish\",\n        \"Czech\",\n        \"Hungarian\",\n        \"Swedish\",\n        \"Portuguese\",\n        \"Bulgarian\",\n        \"Norwegian\",\n        \"Finnish\",\n        \"Croatian\",\n        \"Latvian\",\n        \"Slovak\",\n        \"Serbian\",\n        \"Mongolian\",\n        \"Haitian\",\n        \"Thai\",\n        \"Slovenian\",\n        \"Russian\",\n        \"Lithuanian\",\n        \"Amharic\",\n        \"Malay\",\n        \"Estonian\",\n        \"Greek\",\n        \"Ukrainian\",\n        \"Swahili\",\n        \"Japanese\",\n        \"Filipino\",\n        \"Persian\",\n        \"Welsh\",\n        \"Korean\",\n        \"Cantonese\",\n        \"Indonesian\",\n        \"Latin\",\n        \"Bengali\",\n        \"Catalan\",\n        \"Hindi\"\n      ],\n      \"default\": \"all\",\n      \"prefill\": \"all\"\n    },\n    \"sortBy\": {\n      \"title\": \"Sort by (mode=discover)\",\n      \"type\": \"string\",\n      \"description\": \"Order the directory by trending or by all-time popularity. Legacy popular/new values are accepted.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"trending\",\n        \"top-v2\",\n        \"popular\",\n        \"new\"\n      ],\n      \"enumTitles\": [\n        \"Trending\",\n        \"Most popular\",\n        \"Most popular (legacy alias)\",\n        \"Trending (legacy alias)\"\n      ],\n      \"default\": \"trending\",\n      \"prefill\": \"trending\"\n    },\n    \"minMembers\": {\n      \"title\": \"Minimum members (mode=discover)\",\n      \"type\": \"integer\",\n      \"description\": \"Only keep communities with at least this many members.\",\n      \"minimum\": 0,\n      \"maximum\": 100000000\n    },\n    \"maxMembers\": {\n      \"title\": \"Maximum members (mode=discover)\",\n      \"type\": \"integer\",\n      \"description\": \"Only keep communities with at most this many members.\",\n      \"minimum\": 0,\n      \"maximum\": 100000000\n    },\n    \"enrichDetails\": {\n      \"title\": \"Fetch full community details (mode=discover)\",\n      \"type\": \"boolean\",\n      \"description\": \"Open each discovered community to add pricing, owner, rating, review and roster fields.\",\n      \"default\": true,\n      \"prefill\": true\n    },\n    \"includeReviews\": {\n      \"title\": \"Include recent reviews\",\n      \"type\": \"boolean\",\n      \"description\": \"Add the latest public reviews (up to five) to each community record.\",\n      \"default\": true,\n      \"prefill\": false\n    },\n    \"memberScope\": {\n      \"title\": \"Member tabs (mode=getMembers)\",\n      \"type\": \"string\",\n      \"description\": \"Which public member tab to read: the default members list, the online list, the admin list, or all three combined.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"all\",\n        \"members\",\n        \"online\",\n        \"admins\"\n      ],\n      \"enumTitles\": [\n        \"All public tabs\",\n        \"Members\",\n        \"Online\",\n        \"Admins\"\n      ],\n      \"default\": \"all\",\n      \"prefill\": \"all\"\n    },\n    \"maxItems\": {\n      \"title\": \"Max items\",\n      \"type\": \"integer\",\n      \"description\": \"Maximum number of records to emit (communities or members combined).\",\n      \"minimum\": 1,\n      \"maximum\": 5000,\n      \"default\": 20,\n      \"prefill\": 3\n    },\n    \"maxMembersPerCommunity\": {\n      \"title\": \"Max members per community (mode=getMembers)\",\n      \"type\": \"integer\",\n      \"description\": \"Maximum public members to emit per community. Skool exposes about 30 rows per tab plus the admin and online tabs.\",\n      \"minimum\": 1,\n      \"maximum\": 500,\n      \"default\": 30,\n      \"prefill\": 30\n    }\n  },\n  \"required\": [\n    \"mode\"\n  ]\n}",
    "readme": "# Skool Community Directory, Pricing & Member Finder\n\nSkool hosts tens of thousands of free and paid communities built around courses, coaching and discussion. This actor reads the public Skool directory and community pages without an account, so you can compare niches, pricing, owners, ratings and visible members in one dataset.\n\n## What this actor does\n\n- **Three modes:** `discover` browses the directory, `getCommunity` opens communities you name, `getMembers` reads public member tabs\n- **Real directory filters:** nine Skool categories, 48 languages, free / paid / free-trial, public / private, keyword search and trending / most-popular order\n- **Pagination up to 1,000 rows per directory slice**, with automatic category partitions that can reach roughly 9,000 communities\n- **Full community records:** member, online, admin and post counts; course and module counts; monthly, annual and one-time prices; owner profile and socials; rating and the latest five reviews; privacy and roster availability\n- **Public member records:** username, name, role, level, points, join and last-active dates, bio, location, timezone, avatar and socials\n- **Empty fields are omitted** from each record instead of being returned as null\n\n## Output per community (mode = `discover` / `getCommunity`)\n\n- `communityId`, `name`, `slug`, `displayName`, `url`\n- `description`, `landingPageDescription`\n- `thumbnailUrl`, `coverImageUrl`, `logoUrl`\n- `memberCount`, `onlineMemberCount`, `adminCount`, `postCount`, `courseCount`, `moduleCount`\n- `price`, `currency`, `billingInterval`, `isFree` (true when the community can be joined free, including freemium communities), `monthlyPrice`, `annualPrice`, `oneTimePrice`, `priceTiers`\n- `reviewRating`, `reviewCount`, `recentReviews`\n- `category`, `categorySlug`, `discoveryRank`\n- `isPublic`, `memberRosterAvailable`\n- `owner`, `ownerUrl`, `ownerUsername`, `ownerFirstName`, `ownerLastName`, `ownerBio`, `ownerLocation`, `ownerTimeZone`, `ownerAvatarUrl`, `ownerSocials`\n- `createdAt`, `updatedAt`, `recordType`, `scrapedAt`\n\n`recentReviews` items contain `reviewId`, `rating`, `text`, `reviewedAt`, `memberSince`, `isPayingMember` and reviewer identity, level and points.\n\n## Output per member (mode = `getMembers`)\n\n- `userId`, `memberId`, `username`, `displayName`, `firstName`, `lastName`, `profileUrl`\n- `avatarUrl`, `bio`, `location`, `timeZone`\n- `role` — `admin`, `moderator` or `member`\n- `level`, `points`\n- `joinedAt`, `lastActiveAt`, `isOnline`, `socials`\n- `communityId`, `communityName`, `communityUrl`, `memberScope`\n- `recordType`, `scrapedAt`\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | string | `discover` | `discover`, `getCommunity` or `getMembers` |\n| `searchQueries` | array | `[]` | Keywords for directory search (mode=discover) |\n| `startUrls` | array | `[]` | Community URLs (mode=getCommunity / getMembers) |\n| `slugs` | array | `[]` | Community slugs, e.g. `[\"ai-automation-society\"]` (mode=getCommunity / getMembers) |\n| `categorySlug` | string | `all` | One of nine Skool categories or all (mode=discover) |\n| `priceType` | string | `all` | `all`, `free`, `paid` or `free-trial` (mode=discover) |\n| `communityType` | string | `all` | `all`, `public` or `private` (mode=discover) |\n| `language` | string | `all` | Directory language (mode=discover) |\n| `sortBy` | string | `trending` | `trending` or `top-v2`; legacy `popular`/`new` are accepted (mode=discover) |\n| `minMembers` | integer | – | Drop communities below this member count (mode=discover) |\n| `maxMembers` | integer | – | Drop communities above this member count (mode=discover) |\n| `enrichDetails` | boolean | `true` | Open each discovered community for full pricing, owner and rating fields (mode=discover) |\n| `includeReviews` | boolean | `true` | Add up to five recent public reviews |\n| `memberScope` | string | `all` | `all`, `members`, `online` or `admins` (mode=getMembers) |\n| `maxItems` | integer | `20` | Maximum records to emit overall (1–5,000) |\n| `maxMembersPerCommunity` | integer | `30` | Maximum members to emit per community (1–500) |\n\nLegacy saved-task inputs keep working: `category` maps to `categorySlug`, `isFree: true` maps to `priceType: \"free\"`, and `sortBy: \"popular\"`/`\"new\"` map to `top-v2`/`trending`.\n\n### Example: discover the most popular AI communities\n\n```json\n{\n  \"mode\": \"discover\",\n  \"searchQueries\": [\"ai automation\"],\n  \"categorySlug\": \"tech\",\n  \"priceType\": \"paid\",\n  \"sortBy\": \"top-v2\",\n  \"maxItems\": 25,\n  \"enrichDetails\": true\n}\n```\n\n### Example: browse free communities in one category\n\n```json\n{\n  \"mode\": \"discover\",\n  \"categorySlug\": \"health\",\n  \"priceType\": \"free\",\n  \"language\": \"english\",\n  \"maxItems\": 50\n}\n```\n\n### Example: get full details for known communities\n\n```json\n{\n  \"mode\": \"getCommunity\",\n  \"slugs\": [\"ai-automation-society\", \"claudecodeclub\"],\n  \"includeReviews\": true\n}\n```\n\n### Example: read the public member tabs of a community\n\n```json\n{\n  \"mode\": \"getMembers\",\n  \"startUrls\": [\"https://www.skool.com/ai-automation-society\"],\n  \"memberScope\": \"all\",\n  \"maxMembersPerCommunity\": 100\n}\n```\n\n## Use cases\n\n- **Niche research** — compare member counts, pricing and ratings across every community in a category\n- **Competitive tracking** — follow a competitor's member growth, price changes and owner activity\n- **Creator prospecting** — find paid communities and their owners in a specific topic\n- **Community benchmarking** — measure course, module, post and admin counts to see how active a community is\n- **Member research** — collect the publicly visible members, admins and online users of a community\n\n## FAQ\n\n**Is this affiliated with Skool?**\nNo. This is an independent, third-party actor that reads publicly visible Skool pages and is not operated by or affiliated with Skool.\n\n**Do I need a Skool account, cookies or a proxy?**\nNo. Every mode runs without a login, cookies or proxy setup.\n\n**How many communities can `discover` return?**\nSkool serves 30 rows per page and caps each filter slice at 1,000 rows (34 pages). To go beyond 1,000, set `maxItems` above 1,000 and the actor partitions the request by Skool's nine categories, deduplicates the results and can reach roughly 9,000 communities. No actor can enumerate the entire catalogue in a single slice.\n\n**Why are `category` and `categorySlug` sometimes missing?**\nA global directory search does not label each row with a category. Those fields are filled when you browse a category or when a large request is partitioned by category.\n\n**Why does `getMembers` return only about 30 members?**\nSkool's public member page shows the first 30 rows. Separate admin and online tabs expose their first pages too, so `memberScope: \"all\"` merges and deduplicates all three tabs. Raise `maxMembersPerCommunity` to keep the full union. Full member rosters and member emails are not public.\n\n**Why are members missing for some communities?**\nPrivate communities do not publish a member list. The actor checks each community's privacy setting and skips private ones instead of guessing or bypassing the restriction.\n\n**How many reviews are included?**\nEach public community page embeds only its five latest reviews. The actor includes those when `includeReviews` is enabled; it cannot return the full review history.\n\n**Why is a price or owner field missing on some records?**\nNot every community publishes a price, rating, location or social link. Missing values are omitted rather than filled with a placeholder.\n\n**What does `billingInterval` mean?**\nIt is `month`, `year` or `one-time` and describes the interval used for the top-level `price`. `monthlyPrice`, `annualPrice` and `oneTimePrice` show each plan when the community offers several.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "skool-community-directory-pricing-and-member",
      "title": "Skool Community Directory, Pricing & Member Finder",
      "description": "Browse Skool's public community directory by category, pull pricing and member-count details for communities you already know, and list top members visible on a public community page.",
      "version": "1.0",
      "buildTag": "latest",
      "dockerfile": "./Dockerfile",
      "readme": "# Skool Community Directory, Pricing & Member Finder\n\nSkool hosts tens of thousands of free and paid communities built around courses, coaching and discussion. This actor reads the public Skool directory and community pages without an account, so you can compare niches, pricing, owners, ratings and visible members in one dataset.\n\n## What this actor does\n\n- **Three modes:** `discover` browses the directory, `getCommunity` opens communities you name, `getMembers` reads public member tabs\n- **Real directory filters:** nine Skool categories, 48 languages, free / paid / free-trial, public / private, keyword search and trending / most-popular order\n- **Pagination up to 1,000 rows per directory slice**, with automatic category partitions that can reach roughly 9,000 communities\n- **Full community records:** member, online, admin and post counts; course and module counts; monthly, annual and one-time prices; owner profile and socials; rating and the latest five reviews; privacy and roster availability\n- **Public member records:** username, name, role, level, points, join and last-active dates, bio, location, timezone, avatar and socials\n- **Empty fields are omitted** from each record instead of being returned as null\n\n## Output per community (mode = `discover` / `getCommunity`)\n\n- `communityId`, `name`, `slug`, `displayName`, `url`\n- `description`, `landingPageDescription`\n- `thumbnailUrl`, `coverImageUrl`, `logoUrl`\n- `memberCount`, `onlineMemberCount`, `adminCount`, `postCount`, `courseCount`, `moduleCount`\n- `price`, `currency`, `billingInterval`, `isFree` (true when the community can be joined free, including freemium communities), `monthlyPrice`, `annualPrice`, `oneTimePrice`, `priceTiers`\n- `reviewRating`, `reviewCount`, `recentReviews`\n- `category`, `categorySlug`, `discoveryRank`\n- `isPublic`, `memberRosterAvailable`\n- `owner`, `ownerUrl`, `ownerUsername`, `ownerFirstName`, `ownerLastName`, `ownerBio`, `ownerLocation`, `ownerTimeZone`, `ownerAvatarUrl`, `ownerSocials`\n- `createdAt`, `updatedAt`, `recordType`, `scrapedAt`\n\n`recentReviews` items contain `reviewId`, `rating`, `text`, `reviewedAt`, `memberSince`, `isPayingMember` and reviewer identity, level and points.\n\n## Output per member (mode = `getMembers`)\n\n- `userId`, `memberId`, `username`, `displayName`, `firstName`, `lastName`, `profileUrl`\n- `avatarUrl`, `bio`, `location`, `timeZone`\n- `role` — `admin`, `moderator` or `member`\n- `level`, `points`\n- `joinedAt`, `lastActiveAt`, `isOnline`, `socials`\n- `communityId`, `communityName`, `communityUrl`, `memberScope`\n- `recordType`, `scrapedAt`\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | string | `discover` | `discover`, `getCommunity` or `getMembers` |\n| `searchQueries` | array | `[]` | Keywords for directory search (mode=discover) |\n| `startUrls` | array | `[]` | Community URLs (mode=getCommunity / getMembers) |\n| `slugs` | array | `[]` | Community slugs, e.g. `[\"ai-automation-society\"]` (mode=getCommunity / getMembers) |\n| `categorySlug` | string | `all` | One of nine Skool categories or all (mode=discover) |\n| `priceType` | string | `all` | `all`, `free`, `paid` or `free-trial` (mode=discover) |\n| `communityType` | string | `all` | `all`, `public` or `private` (mode=discover) |\n| `language` | string | `all` | Directory language (mode=discover) |\n| `sortBy` | string | `trending` | `trending` or `top-v2`; legacy `popular`/`new` are accepted (mode=discover) |\n| `minMembers` | integer | – | Drop communities below this member count (mode=discover) |\n| `maxMembers` | integer | – | Drop communities above this member count (mode=discover) |\n| `enrichDetails` | boolean | `true` | Open each discovered community for full pricing, owner and rating fields (mode=discover) |\n| `includeReviews` | boolean | `true` | Add up to five recent public reviews |\n| `memberScope` | string | `all` | `all`, `members`, `online` or `admins` (mode=getMembers) |\n| `maxItems` | integer | `20` | Maximum records to emit overall (1–5,000) |\n| `maxMembersPerCommunity` | integer | `30` | Maximum members to emit per community (1–500) |\n\nLegacy saved-task inputs keep working: `category` maps to `categorySlug`, `isFree: true` maps to `priceType: \"free\"`, and `sortBy: \"popular\"`/`\"new\"` map to `top-v2`/`trending`.\n\n### Example: discover the most popular AI communities\n\n```json\n{\n  \"mode\": \"discover\",\n  \"searchQueries\": [\"ai automation\"],\n  \"categorySlug\": \"tech\",\n  \"priceType\": \"paid\",\n  \"sortBy\": \"top-v2\",\n  \"maxItems\": 25,\n  \"enrichDetails\": true\n}\n```\n\n### Example: browse free communities in one category\n\n```json\n{\n  \"mode\": \"discover\",\n  \"categorySlug\": \"health\",\n  \"priceType\": \"free\",\n  \"language\": \"english\",\n  \"maxItems\": 50\n}\n```\n\n### Example: get full details for known communities\n\n```json\n{\n  \"mode\": \"getCommunity\",\n  \"slugs\": [\"ai-automation-society\", \"claudecodeclub\"],\n  \"includeReviews\": true\n}\n```\n\n### Example: read the public member tabs of a community\n\n```json\n{\n  \"mode\": \"getMembers\",\n  \"startUrls\": [\"https://www.skool.com/ai-automation-society\"],\n  \"memberScope\": \"all\",\n  \"maxMembersPerCommunity\": 100\n}\n```\n\n## Use cases\n\n- **Niche research** — compare member counts, pricing and ratings across every community in a category\n- **Competitive tracking** — follow a competitor's member growth, price changes and owner activity\n- **Creator prospecting** — find paid communities and their owners in a specific topic\n- **Community benchmarking** — measure course, module, post and admin counts to see how active a community is\n- **Member research** — collect the publicly visible members, admins and online users of a community\n\n## FAQ\n\n**Is this affiliated with Skool?**\nNo. This is an independent, third-party actor that reads publicly visible Skool pages and is not operated by or affiliated with Skool.\n\n**Do I need a Skool account, cookies or a proxy?**\nNo. Every mode runs without a login, cookies or proxy setup.\n\n**How many communities can `discover` return?**\nSkool serves 30 rows per page and caps each filter slice at 1,000 rows (34 pages). To go beyond 1,000, set `maxItems` above 1,000 and the actor partitions the request by Skool's nine categories, deduplicates the results and can reach roughly 9,000 communities. No actor can enumerate the entire catalogue in a single slice.\n\n**Why are `category` and `categorySlug` sometimes missing?**\nA global directory search does not label each row with a category. Those fields are filled when you browse a category or when a large request is partitioned by category.\n\n**Why does `getMembers` return only about 30 members?**\nSkool's public member page shows the first 30 rows. Separate admin and online tabs expose their first pages too, so `memberScope: \"all\"` merges and deduplicates all three tabs. Raise `maxMembersPerCommunity` to keep the full union. Full member rosters and member emails are not public.\n\n**Why are members missing for some communities?**\nPrivate communities do not publish a member list. The actor checks each community's privacy setting and skips private ones instead of guessing or bypassing the restriction.\n\n**How many reviews are included?**\nEach public community page embeds only its five latest reviews. The actor includes those when `includeReviews` is enabled; it cannot return the full review history.\n\n**Why is a price or owner field missing on some records?**\nNot every community publishes a price, rating, location or social link. Missing values are omitted rather than filled with a placeholder.\n\n**What does `billingInterval` mean?**\nIt is `month`, `year` or `one-time` and describes the interval used for the top-level `price`. `monthlyPrice`, `annualPrice` and `oneTimePrice` show each plan when the community offers several.\n",
      "input": {
        "title": "Skool Communities & Courses Scraper Input",
        "description": "Scrape public Skool communities, courses, and visible member lists. Browse the community directory, get details for specific communities, or list members from public communities.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "mode": {
            "title": "Mode",
            "type": "string",
            "description": "What to scrape: discover communities from the directory, get details for specific communities, or list visible members.",
            "editor": "select",
            "enum": [
              "discover",
              "getCommunity",
              "getMembers"
            ],
            "enumTitles": [
              "Discover communities (browse directory)",
              "Get community details (by URL or slug)",
              "Get visible members (from public community)"
            ],
            "default": "discover",
            "prefill": "discover"
          },
          "searchQueries": {
            "title": "Search keywords (mode=discover)",
            "type": "array",
            "description": "Keywords to search the Skool directory for, e.g. [\"ai automation\", \"fitness\"]. Leave empty to browse the selected category and sort order.",
            "editor": "stringList",
            "default": [],
            "prefill": [
              "ai"
            ]
          },
          "startUrls": {
            "title": "Community URLs (mode=getCommunity / getMembers)",
            "type": "array",
            "description": "Skool community URLs, e.g. https://www.skool.com/the-skool-of-life.",
            "editor": "stringList",
            "default": [],
            "prefill": []
          },
          "slugs": {
            "title": "Community slugs (mode=getCommunity / getMembers)",
            "type": "array",
            "description": "Community slugs from the Skool URL, e.g. [\"the-skool-of-life\", \"buildwithskool\"]. Alternative to startUrls.",
            "editor": "stringList",
            "default": [],
            "prefill": []
          },
          "categorySlug": {
            "title": "Category (mode=discover)",
            "type": "string",
            "description": "Browse one of Skool's nine directory categories, or all categories. Filtering by category also fills the category fields on each community.",
            "editor": "select",
            "enum": [
              "all",
              "hobbies",
              "music",
              "money",
              "spirituality",
              "tech",
              "health",
              "sports",
              "self_improvement",
              "relationships"
            ],
            "enumTitles": [
              "All categories",
              "Hobbies",
              "Music",
              "Money",
              "Spirituality",
              "Tech",
              "Health",
              "Sports",
              "Self-improvement",
              "Relationships"
            ],
            "default": "all",
            "prefill": "all"
          },
          "priceType": {
            "title": "Price (mode=discover)",
            "type": "string",
            "description": "Filter communities by membership price: free, paid, or free trial.",
            "editor": "select",
            "enum": [
              "all",
              "free",
              "paid",
              "free-trial"
            ],
            "enumTitles": [
              "All prices",
              "Free",
              "Paid",
              "Free trial"
            ],
            "default": "all",
            "prefill": "all"
          },
          "category": {
            "title": "Category (legacy alias)",
            "type": "string",
            "description": "Deprecated alias for categorySlug kept so saved tasks keep working. categorySlug takes precedence when both are set.",
            "editor": "select",
            "enum": [
              "",
              "Technology",
              "Business",
              "Health & Fitness",
              "Arts & Creativity",
              "Education",
              "Gaming",
              "Lifestyle",
              "Finance",
              "Marketing",
              "Other"
            ],
            "enumTitles": [
              "All categories",
              "Technology",
              "Business",
              "Health & Fitness",
              "Arts & Creativity",
              "Education",
              "Gaming",
              "Lifestyle",
              "Finance",
              "Marketing",
              "Other"
            ],
            "default": "",
            "prefill": ""
          },
          "isFree": {
            "title": "Free communities only (legacy alias)",
            "type": "boolean",
            "description": "Deprecated alias for priceType=free kept so saved tasks keep working. priceType takes precedence when set.",
            "default": false,
            "prefill": false
          },
          "communityType": {
            "title": "Community type (mode=discover)",
            "type": "string",
            "description": "Filter the directory by public or private communities.",
            "editor": "select",
            "enum": [
              "all",
              "public",
              "private"
            ],
            "enumTitles": [
              "All communities",
              "Public",
              "Private"
            ],
            "default": "all",
            "prefill": "all"
          },
          "language": {
            "title": "Language (mode=discover)",
            "type": "string",
            "description": "Filter the directory by the community's language.",
            "editor": "select",
            "enum": [
              "all",
              "english",
              "german",
              "spanish",
              "french",
              "chinese",
              "italian",
              "dutch",
              "vietnamese",
              "arabic",
              "hebrew",
              "danish",
              "romanian",
              "turkish",
              "polish",
              "czech",
              "hungarian",
              "swedish",
              "portuguese",
              "bulgarian",
              "norwegian",
              "finnish",
              "croatian",
              "latvian",
              "slovak",
              "serbian",
              "mongolian",
              "haitian",
              "thai",
              "slovenian",
              "russian",
              "lithuanian",
              "amharic",
              "malay",
              "estonian",
              "greek",
              "ukrainian",
              "swahili",
              "japanese",
              "filipino",
              "persian",
              "welsh",
              "korean",
              "cantonese",
              "indonesian",
              "latin",
              "bengali",
              "catalan",
              "hindi"
            ],
            "enumTitles": [
              "All languages",
              "English",
              "German",
              "Spanish",
              "French",
              "Chinese",
              "Italian",
              "Dutch",
              "Vietnamese",
              "Arabic",
              "Hebrew",
              "Danish",
              "Romanian",
              "Turkish",
              "Polish",
              "Czech",
              "Hungarian",
              "Swedish",
              "Portuguese",
              "Bulgarian",
              "Norwegian",
              "Finnish",
              "Croatian",
              "Latvian",
              "Slovak",
              "Serbian",
              "Mongolian",
              "Haitian",
              "Thai",
              "Slovenian",
              "Russian",
              "Lithuanian",
              "Amharic",
              "Malay",
              "Estonian",
              "Greek",
              "Ukrainian",
              "Swahili",
              "Japanese",
              "Filipino",
              "Persian",
              "Welsh",
              "Korean",
              "Cantonese",
              "Indonesian",
              "Latin",
              "Bengali",
              "Catalan",
              "Hindi"
            ],
            "default": "all",
            "prefill": "all"
          },
          "sortBy": {
            "title": "Sort by (mode=discover)",
            "type": "string",
            "description": "Order the directory by trending or by all-time popularity. Legacy popular/new values are accepted.",
            "editor": "select",
            "enum": [
              "trending",
              "top-v2",
              "popular",
              "new"
            ],
            "enumTitles": [
              "Trending",
              "Most popular",
              "Most popular (legacy alias)",
              "Trending (legacy alias)"
            ],
            "default": "trending",
            "prefill": "trending"
          },
          "minMembers": {
            "title": "Minimum members (mode=discover)",
            "type": "integer",
            "description": "Only keep communities with at least this many members.",
            "minimum": 0,
            "maximum": 100000000
          },
          "maxMembers": {
            "title": "Maximum members (mode=discover)",
            "type": "integer",
            "description": "Only keep communities with at most this many members.",
            "minimum": 0,
            "maximum": 100000000
          },
          "enrichDetails": {
            "title": "Fetch full community details (mode=discover)",
            "type": "boolean",
            "description": "Open each discovered community to add pricing, owner, rating, review and roster fields.",
            "default": true,
            "prefill": true
          },
          "includeReviews": {
            "title": "Include recent reviews",
            "type": "boolean",
            "description": "Add the latest public reviews (up to five) to each community record.",
            "default": true,
            "prefill": false
          },
          "memberScope": {
            "title": "Member tabs (mode=getMembers)",
            "type": "string",
            "description": "Which public member tab to read: the default members list, the online list, the admin list, or all three combined.",
            "editor": "select",
            "enum": [
              "all",
              "members",
              "online",
              "admins"
            ],
            "enumTitles": [
              "All public tabs",
              "Members",
              "Online",
              "Admins"
            ],
            "default": "all",
            "prefill": "all"
          },
          "maxItems": {
            "title": "Max items",
            "type": "integer",
            "description": "Maximum number of records to emit (communities or members combined).",
            "minimum": 1,
            "maximum": 5000,
            "default": 20,
            "prefill": 3
          },
          "maxMembersPerCommunity": {
            "title": "Max members per community (mode=getMembers)",
            "type": "integer",
            "description": "Maximum public members to emit per community. Skool exposes about 30 rows per tab plus the admin and online tabs.",
            "minimum": 1,
            "maximum": 500,
            "default": 30,
            "prefill": 30
          }
        },
        "required": [
          "mode"
        ]
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "Skool Community Directory, Pricing & Member Finder Output",
        "description": "Public Skool community records with pricing, owner, rating, review and roster fields, plus public member records.",
        "properties": {
          "results": {
            "type": "string",
            "title": "Communities and members",
            "description": "Dataset containing all scraped Skool communities and member records.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "views": {
            "overview": {
              "title": "Communities & Members",
              "transformation": {
                "fields": [
                  "name",
                  "slug",
                  "memberCount",
                  "price",
                  "isFree",
                  "category",
                  "reviewRating",
                  "owner",
                  "url",
                  "recordType"
                ]
              },
              "display": {
                "component": "table",
                "properties": {}
              }
            }
          }
        }
      },
      "environmentVariables": {},
      "memoryMbytes": 1024
    },
    "buildNumber": "1.0.2",
    "imageDigest": "bd91d943d6ead998c8d273cbe0ea14ca89d89189c3824df01a8ce3e52e944f9d",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.0"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.018412222222222222
    }
  }
}