Dataspryva

Skool Community Directory, Pricing & Member Finder

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.

Input schema

Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.

FieldTypeRequiredDescription
modestringrequiredWhat to scrape: discover communities from the directory, get details for specific communities, or list visible members.
searchQueriesarrayoptionalKeywords to search the Skool directory for, e.g. ["ai automation", "fitness"]. Leave empty to browse the selected category and sort order.
startUrlsarrayoptionalSkool community URLs, e.g. https://www.skool.com/the-skool-of-life.
Show all input fields
FieldTypeRequiredDescription
modestringrequiredWhat to scrape: discover communities from the directory, get details for specific communities, or list visible members.
searchQueriesarrayoptionalKeywords to search the Skool directory for, e.g. ["ai automation", "fitness"]. Leave empty to browse the selected category and sort order.
startUrlsarrayoptionalSkool community URLs, e.g. https://www.skool.com/the-skool-of-life.
slugsarrayoptionalCommunity slugs from the Skool URL, e.g. ["the-skool-of-life", "buildwithskool"]. Alternative to startUrls.
categorySlugstringoptionalBrowse one of Skool's nine directory categories, or all categories. Filtering by category also fills the category fields on each community.
priceTypestringoptionalFilter communities by membership price: free, paid, or free trial.
categorystringoptionalDeprecated alias for categorySlug kept so saved tasks keep working. categorySlug takes precedence when both are set.
isFreebooleanoptionalDeprecated alias for priceType=free kept so saved tasks keep working. priceType takes precedence when set.
communityTypestringoptionalFilter the directory by public or private communities.
languagestringoptionalFilter the directory by the community's language.
sortBystringoptionalOrder the directory by trending or by all-time popularity. Legacy popular/new values are accepted.
minMembersintegeroptionalOnly keep communities with at least this many members.
maxMembersintegeroptionalOnly keep communities with at most this many members.
enrichDetailsbooleanoptionalOpen each discovered community to add pricing, owner, rating, review and roster fields.
includeReviewsbooleanoptionalAdd the latest public reviews (up to five) to each community record.
memberScopestringoptionalWhich public member tab to read: the default members list, the online list, the admin list, or all three combined.
maxItemsintegeroptionalMaximum number of records to emit (communities or members combined).
maxMembersPerCommunityintegeroptionalMaximum public members to emit per community. Skool exposes about 30 rows per tab plus the admin and online tabs.

Download the published input schema

View complete JSON
{
  "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.",
  "properties": {
    "category": {
      "default": "",
      "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"
      ],
      "prefill": "",
      "title": "Category (legacy alias)",
      "type": "string"
    },
    "categorySlug": {
      "default": "all",
      "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"
      ],
      "prefill": "all",
      "title": "Category (mode=discover)",
      "type": "string"
    },
    "communityType": {
      "default": "all",
      "description": "Filter the directory by public or private communities.",
      "editor": "select",
      "enum": [
        "all",
        "public",
        "private"
      ],
      "enumTitles": [
        "All communities",
        "Public",
        "Private"
      ],
      "prefill": "all",
      "title": "Community type (mode=discover)",
      "type": "string"
    },
    "enrichDetails": {
      "default": true,
      "description": "Open each discovered community to add pricing, owner, rating, review and roster fields.",
      "prefill": true,
      "title": "Fetch full community details (mode=discover)",
      "type": "boolean"
    },
    "includeReviews": {
      "default": true,
      "description": "Add the latest public reviews (up to five) to each community record.",
      "prefill": false,
      "title": "Include recent reviews",
      "type": "boolean"
    },
    "isFree": {
      "default": false,
      "description": "Deprecated alias for priceType=free kept so saved tasks keep working. priceType takes precedence when set.",
      "prefill": false,
      "title": "Free communities only (legacy alias)",
      "type": "boolean"
    },
    "language": {
      "default": "all",
      "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"
      ],
      "prefill": "all",
      "title": "Language (mode=discover)",
      "type": "string"
    },
    "maxItems": {
      "default": 20,
      "description": "Maximum number of records to emit (communities or members combined).",
      "maximum": 5000,
      "minimum": 1,
      "prefill": 3,
      "title": "Max items",
      "type": "integer"
    },
    "maxMembers": {
      "description": "Only keep communities with at most this many members.",
      "maximum": 100000000,
      "minimum": 0,
      "title": "Maximum members (mode=discover)",
      "type": "integer"
    },
    "maxMembersPerCommunity": {
      "default": 30,
      "description": "Maximum public members to emit per community. Skool exposes about 30 rows per tab plus the admin and online tabs.",
      "maximum": 500,
      "minimum": 1,
      "prefill": 30,
      "title": "Max members per community (mode=getMembers)",
      "type": "integer"
    },
    "memberScope": {
      "default": "all",
      "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"
      ],
      "prefill": "all",
      "title": "Member tabs (mode=getMembers)",
      "type": "string"
    },
    "minMembers": {
      "description": "Only keep communities with at least this many members.",
      "maximum": 100000000,
      "minimum": 0,
      "title": "Minimum members (mode=discover)",
      "type": "integer"
    },
    "mode": {
      "default": "discover",
      "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)"
      ],
      "prefill": "discover",
      "title": "Mode",
      "type": "string"
    },
    "priceType": {
      "default": "all",
      "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"
      ],
      "prefill": "all",
      "title": "Price (mode=discover)",
      "type": "string"
    },
    "searchQueries": {
      "default": [],
      "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",
      "prefill": [
        "ai"
      ],
      "title": "Search keywords (mode=discover)",
      "type": "array"
    },
    "slugs": {
      "default": [],
      "description": "Community slugs from the Skool URL, e.g. [\"the-skool-of-life\", \"buildwithskool\"]. Alternative to startUrls.",
      "editor": "stringList",
      "prefill": [],
      "title": "Community slugs (mode=getCommunity / getMembers)",
      "type": "array"
    },
    "sortBy": {
      "default": "trending",
      "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)"
      ],
      "prefill": "trending",
      "title": "Sort by (mode=discover)",
      "type": "string"
    },
    "startUrls": {
      "default": [],
      "description": "Skool community URLs, e.g. https://www.skool.com/the-skool-of-life.",
      "editor": "stringList",
      "prefill": [],
      "title": "Community URLs (mode=getCommunity / getMembers)",
      "type": "array"
    }
  },
  "required": [
    "mode"
  ],
  "schemaVersion": 1,
  "title": "Skool Communities & Courses Scraper Input",
  "type": "object"
}

Output schema

Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.

FieldTypeRequiredDescription
resultsstringoptionalDataset containing all scraped Skool communities and member records.

Download the published output schema

View complete JSON
{
  "actorOutputSchemaVersion": 1,
  "description": "Public Skool community records with pricing, owner, rating, review and roster fields, plus public member records.",
  "properties": {
    "results": {
      "description": "Dataset containing all scraped Skool communities and member records.",
      "template": "{{links.apiDefaultDatasetUrl}}/items",
      "title": "Communities and members",
      "type": "string"
    }
  },
  "title": "Skool Community Directory, Pricing & Member Finder Output"
}

Dataset schema

Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.

Download the published dataset schema

View complete JSON
{
  "actorSpecification": 1,
  "views": {
    "overview": {
      "display": {
        "component": "table",
        "properties": {}
      },
      "title": "Communities & Members",
      "transformation": {
        "fields": [
          "name",
          "slug",
          "memberCount",
          "price",
          "isFree",
          "category",
          "reviewRating",
          "owner",
          "url",
          "recordType"
        ]
      }
    }
  }
}

Key-value schema

Published key-value store definitions, when provided by this build.

This definition is not present in the default published build. See the published README for available documentation.

Published README

Read the full published documentation

Skool Community Directory, Pricing & Member Finder

Skool 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.

What this actor does

  • Three modes: discover browses the directory, getCommunity opens communities you name, getMembers reads public member tabs
  • Real directory filters: nine Skool categories, 48 languages, free / paid / free-trial, public / private, keyword search and trending / most-popular order
  • Pagination up to 1,000 rows per directory slice, with automatic category partitions that can reach roughly 9,000 communities
  • 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
  • Public member records: username, name, role, level, points, join and last-active dates, bio, location, timezone, avatar and socials
  • Empty fields are omitted from each record instead of being returned as null

Output per community (mode = discover / getCommunity)

  • communityId, name, slug, displayName, url
  • description, landingPageDescription
  • thumbnailUrl, coverImageUrl, logoUrl
  • memberCount, onlineMemberCount, adminCount, postCount, courseCount, moduleCount
  • price, currency, billingInterval, isFree (true when the community can be joined free, including freemium communities), monthlyPrice, annualPrice, oneTimePrice, priceTiers
  • reviewRating, reviewCount, recentReviews
  • category, categorySlug, discoveryRank
  • isPublic, memberRosterAvailable
  • owner, ownerUrl, ownerUsername, ownerFirstName, ownerLastName, ownerBio, ownerLocation, ownerTimeZone, ownerAvatarUrl, ownerSocials
  • createdAt, updatedAt, recordType, scrapedAt

recentReviews items contain reviewId, rating, text, reviewedAt, memberSince, isPayingMember and reviewer identity, level and points.

Output per member (mode = getMembers)

  • userId, memberId, username, displayName, firstName, lastName, profileUrl
  • avatarUrl, bio, location, timeZone
  • role — admin, moderator or member
  • level, points
  • joinedAt, lastActiveAt, isOnline, socials
  • communityId, communityName, communityUrl, memberScope
  • recordType, scrapedAt

Input

Field Type Default Description
mode string discover discover, getCommunity or getMembers
searchQueries array [] Keywords for directory search (mode=discover)
startUrls array [] Community URLs (mode=getCommunity / getMembers)
slugs array [] Community slugs, e.g. ["ai-automation-society"] (mode=getCommunity / getMembers)
categorySlug string all One of nine Skool categories or all (mode=discover)
priceType string all all, free, paid or free-trial (mode=discover)
communityType string all all, public or private (mode=discover)
language string all Directory language (mode=discover)
sortBy string trending trending or top-v2; legacy popular/new are accepted (mode=discover)
minMembers integer – Drop communities below this member count (mode=discover)
maxMembers integer – Drop communities above this member count (mode=discover)
enrichDetails boolean true Open each discovered community for full pricing, owner and rating fields (mode=discover)
includeReviews boolean true Add up to five recent public reviews
memberScope string all all, members, online or admins (mode=getMembers)
maxItems integer 20 Maximum records to emit overall (1–5,000)
maxMembersPerCommunity integer 30 Maximum members to emit per community (1–500)

Legacy saved-task inputs keep working: category maps to categorySlug, isFree: true maps to priceType: "free", and sortBy: "popular"/"new" map to top-v2/trending.

{
  "mode": "discover",
  "searchQueries": ["ai automation"],
  "categorySlug": "tech",
  "priceType": "paid",
  "sortBy": "top-v2",
  "maxItems": 25,
  "enrichDetails": true
}

Example: browse free communities in one category

{
  "mode": "discover",
  "categorySlug": "health",
  "priceType": "free",
  "language": "english",
  "maxItems": 50
}

Example: get full details for known communities

{
  "mode": "getCommunity",
  "slugs": ["ai-automation-society", "claudecodeclub"],
  "includeReviews": true
}

Example: read the public member tabs of a community

{
  "mode": "getMembers",
  "startUrls": ["https://www.skool.com/ai-automation-society"],
  "memberScope": "all",
  "maxMembersPerCommunity": 100
}

Use cases

  • Niche research — compare member counts, pricing and ratings across every community in a category
  • Competitive tracking — follow a competitor's member growth, price changes and owner activity
  • Creator prospecting — find paid communities and their owners in a specific topic
  • Community benchmarking — measure course, module, post and admin counts to see how active a community is
  • Member research — collect the publicly visible members, admins and online users of a community

FAQ

Is this affiliated with Skool? No. This is an independent, third-party actor that reads publicly visible Skool pages and is not operated by or affiliated with Skool.

Do I need a Skool account, cookies or a proxy? No. Every mode runs without a login, cookies or proxy setup.

How many communities can discover return? Skool 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.

Why are category and categorySlug sometimes missing? A 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.

Why does getMembers return only about 30 members? Skool'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.

Why are members missing for some communities? Private 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.

How many reviews are included? Each public community page embeds only its five latest reviews. The actor includes those when includeReviews is enabled; it cannot return the full review history.

Why is a price or owner field missing on some records? Not every community publishes a price, rating, location or social link. Missing values are omitted rather than filled with a placeholder.

What does billingInterval mean? It 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.

Python quickstart

Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.

Open the step-by-step Python guide →

Source build tjgDxDV8AsB1A3KHA. Documentation is regenerated from the default published build; private drafts are not included.