{
  "openapi": "3.0.1",
  "info": {
    "title": "Skool Communities Scraper - Discovery, Members, Pricing",
    "description": "Scrape Skool communities from the public discovery directory and about pages: name, URL, description, category, members, price, courses, rating and owner display name. No login, no emails. US$ 3 per 1,000 communities.",
    "version": "0.1",
    "x-build-id": "wdrsKA3TbnqOHcGLu"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapewise~skool-communities/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapewise-skool-communities",
        "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/scrapewise~skool-communities/runs": {
      "post": {
        "operationId": "runs-sync-scrapewise-skool-communities",
        "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/scrapewise~skool-communities/run-sync": {
      "post": {
        "operationId": "run-sync-scrapewise-skool-communities",
        "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",
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "communities",
              "discover",
              "discovery",
              "community",
              "scrape"
            ],
            "type": "string",
            "description": "'search' lists communities from skool.com/discovery with filters. 'communities' reads the public about page of the communities you list. If you send only URLs or slugs, the Actor switches to 'communities' by itself.",
            "default": "search"
          },
          "searchQueries": {
            "title": "Search keywords",
            "type": "array",
            "description": "For 'search': each keyword is searched on the Skool discovery page (up to 1,000 communities per keyword, Skool's own limit). Leave empty to list the whole directory with the filters below. Also accepted by API as searchTerms, queries, query or searchQuery.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Community URLs or slugs",
            "type": "array",
            "description": "For 'communities': skool.com/<slug>, skool.com/<slug>/about or just the slug. A skool.com/discovery URL with filters also works and runs as a search. Also accepted by API as communityUrls, communityUrl, urls or communities.",
            "items": {
              "type": "string"
            }
          },
          "category": {
            "title": "Category",
            "type": "string",
            "description": "Skool discovery category: hobbies, music, money, spirituality, tech, health, sports, self_improvement or relationships. Empty means all. By API you can also send 'categories' as a list; each category runs as its own slice of the directory. An unknown category returns a free INVALID_CATEGORY row."
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Community language as Skool names it (english, spanish, portuguese, german, french...) or a two-letter code (EN, ES, PT). Empty means all languages."
          },
          "price": {
            "title": "Price",
            "enum": [
              "all",
              "free",
              "paid",
              "free-trial"
            ],
            "type": "string",
            "description": "Skool's own price filter. Also accepted by API as membership, or paidOnly: true.",
            "default": "all"
          },
          "communityType": {
            "title": "Community type",
            "enum": [
              "all",
              "public",
              "private"
            ],
            "type": "string",
            "description": "Skool's filter for public or private communities (private means posts need membership; the about page is always public).",
            "default": "all"
          },
          "sortBy": {
            "title": "Sort",
            "enum": [
              "trending",
              "top"
            ],
            "type": "string",
            "description": "Order of the discovery directory. Skool ignores the order when a keyword is searched and uses relevance.",
            "default": "trending"
          },
          "minMembers": {
            "title": "Minimum members",
            "minimum": 0,
            "type": "integer",
            "description": "Skip communities with fewer members. Paging continues until maxItems communities pass the filter.",
            "default": 0
          },
          "minPriceUsd": {
            "title": "Minimum monthly price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only communities whose monthly price is at least this value (annual prices are divided by 12). Free communities count as 0."
          },
          "maxPriceUsd": {
            "title": "Maximum monthly price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only communities whose monthly price is at most this value."
          },
          "includeDetails": {
            "title": "Include about page details",
            "type": "boolean",
            "description": "Adds courses, modules, rating, review count, online members, posts, creation date, full about text and owner display name to each search result. One extra light request per community, same price.",
            "default": true
          },
          "maxItems": {
            "title": "Max communities per search",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "For 'search': maximum communities per keyword (or per category slice). Skool shows at most 1,000 per search. Also accepted by API as maxCommunities or maxResults.",
            "default": 30
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify datacenter proxy is the default. Blocked requests are retried on a new IP.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}