{
  "openapi": "3.0.1",
  "info": {
    "title": "Skool Scraper - Communities, Members & Posts",
    "description": "Scrape Skool communities from Discovery by keyword or category, plus community details, member lists and posts with comments. Prices, owners, member counts.",
    "version": "1.0",
    "x-build-id": "CP2qTbg9aPj1SKiSr"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/seemuapps~skool-community-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-seemuapps-skool-community-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/seemuapps~skool-community-scraper/runs": {
      "post": {
        "operationId": "runs-sync-seemuapps-skool-community-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/seemuapps~skool-community-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-seemuapps-skool-community-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "discovery",
              "community",
              "members",
              "posts"
            ],
            "type": "string",
            "description": "What to scrape. Discovery searches skool.com/discovery. The other modes take community URLs or slugs in 'Communities'. Members and posts are only visible for public communities.",
            "default": "discovery"
          },
          "searchQuery": {
            "title": "Search keyword (discovery)",
            "type": "string",
            "description": "Keyword to search Skool Discovery for, e.g. 'fitness' or 'real estate'. Leave empty to browse the trending list."
          },
          "category": {
            "title": "Category (discovery)",
            "enum": [
              "",
              "hobbies",
              "music",
              "money",
              "spirituality",
              "tech",
              "health",
              "sports",
              "self_improvement",
              "relationships"
            ],
            "type": "string",
            "description": "Limit Discovery to one category. Applies when browsing without a keyword; Skool ignores it for keyword searches.",
            "default": ""
          },
          "priceFilter": {
            "title": "Price (discovery)",
            "enum": [
              "all",
              "free",
              "paid"
            ],
            "type": "string",
            "description": "Only return free or paid communities.",
            "default": "all"
          },
          "privacyFilter": {
            "title": "Privacy (discovery)",
            "enum": [
              "all",
              "public",
              "private"
            ],
            "type": "string",
            "description": "Public communities let anyone read posts and members; private ones only show their about page. Pick 'Public only' if you plan to scrape members or posts next.",
            "default": "all"
          },
          "language": {
            "title": "Language (discovery)",
            "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"
            ],
            "type": "string",
            "description": "Only return communities in this language.",
            "default": "all"
          },
          "sort": {
            "title": "Sort (discovery)",
            "enum": [
              "trending",
              "top"
            ],
            "type": "string",
            "description": "Discovery ordering. Applies when browsing without a keyword.",
            "default": "trending"
          },
          "includeCommunityDetails": {
            "title": "Include full community details (discovery)",
            "type": "boolean",
            "description": "Also open each community's about page to add owner (name, bio, social links), post count, online count, admin count, course count, privacy and long description. One extra request per community.",
            "default": false
          },
          "communities": {
            "title": "Communities",
            "type": "array",
            "description": "Skool community URLs or slugs, e.g. 'https://www.skool.com/cliefnotes' or 'cliefnotes'. Used by the community, members and posts modes.",
            "items": {
              "type": "string"
            }
          },
          "memberSearchTerms": {
            "title": "Member search keywords (members)",
            "type": "array",
            "description": "Optional. Only return members whose name or bio contains one of these words, e.g. 'coach', 'realtor', 'founder'. Whole-word match, up to about 10,000 members per keyword. Leave empty to collect as many members as possible.",
            "items": {
              "type": "string"
            }
          },
          "deepMemberScan": {
            "title": "Deep member scan (members)",
            "type": "boolean",
            "description": "Without a session cookie, Skool only shows visitors 30 members per list view. When on, the actor also runs a series of member searches to collect far more members (slower on very large communities). Turn off for a quick sample of the newest and most active members.",
            "default": true
          },
          "sessionCookie": {
            "title": "Skool session cookie (optional)",
            "type": "string",
            "description": "Optional. Your own Skool 'auth_token' cookie (from your browser's developer tools while logged in to skool.com). With it, the actor pages through the complete member list, and can read members and posts of private communities you belong to. Use your own account only. Leave empty to scrape public data without logging in."
          },
          "postSort": {
            "title": "Post order (posts)",
            "enum": [
              "activity",
              "newest"
            ],
            "type": "string",
            "description": "Order of posts. Recent activity matches the community's default feed; Newest sorts by creation date.",
            "default": "activity"
          },
          "postCategory": {
            "title": "Post category (posts)",
            "type": "string",
            "description": "Optional. Only return posts from this community category, e.g. 'Wins' or 'General discussion' (name match is case-insensitive and partial). Leave empty for all posts."
          },
          "maxCommentsPerPost": {
            "title": "Max comments per post (posts)",
            "minimum": 0,
            "maximum": 500,
            "type": "integer",
            "description": "Attach up to this many comments (including replies) to each post. 0 skips comments, which is fastest.",
            "default": 0
          },
          "fetchFullContent": {
            "title": "Fetch full text of long posts (posts)",
            "type": "boolean",
            "description": "The feed truncates posts at about 2,000 characters. When on, long posts are opened individually to get the complete text.",
            "default": true
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of records to return across the whole run (communities, members or posts). 0 means no limit.",
            "default": 100
          },
          "pageId": {
            "title": "Page ID (pagination)",
            "type": "string",
            "description": "Paste NEXT_PAGE_ID from the previous run's Key-value store to continue where it stopped. Works for discovery, for posts of a single community, and for members of a single community when a session cookie is set."
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional proxy. Skool normally works without one; if requests get blocked the actor switches to Apify Proxy automatically.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}