{
  "openapi": "3.0.1",
  "info": {
    "title": "Skool Community Finder",
    "description": "Search Skool for communities by keyword, category, price, language or private/public, and get one row each: url, name, members, price, description. Finds communities you have no links for.",
    "version": "0.1",
    "x-build-id": "T7hrfx5xwEPxUA02O"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/dami_studio~skool-discovery-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-dami_studio-skool-discovery-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/dami_studio~skool-discovery-scraper/runs": {
      "post": {
        "operationId": "runs-sync-dami_studio-skool-discovery-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/dami_studio~skool-discovery-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-dami_studio-skool-discovery-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",
        "properties": {
          "searchTerms": {
            "title": "Search terms",
            "maxItems": 20,
            "type": "array",
            "description": "What to search Skool for. One term per line, up to 20. Each term is searched on its own and the results are merged, so a community that matches two terms is returned once and billed once. Matching is close to a plain text match on the community name, slug and description rather than anything clever, so 'ai automation' and 'automation' give quite different lists. Leave this empty to browse a category instead.",
            "items": {
              "type": "string"
            }
          },
          "category": {
            "title": "Category",
            "enum": [
              "any",
              "hobbies",
              "music",
              "money",
              "spirituality",
              "tech",
              "health",
              "sports",
              "self_improvement",
              "relationships"
            ],
            "type": "string",
            "description": "Skool's own nine categories. Picking one is a real split, not a nudge: the nine category listings share no communities at all. Leave on Any to search across everything."
          },
          "price": {
            "title": "Price",
            "enum": [
              "any",
              "free",
              "paid",
              "free-trial"
            ],
            "type": "string",
            "description": "Free, paid, or communities running a free trial. Free and paid are checked against every row before it is billed — a paid community coming back from a free search is dropped and not charged. Free trial is passed through as Skool answers it, because the listing carries no trial marker to check against."
          },
          "communityType": {
            "title": "Private or public",
            "enum": [
              "any",
              "private",
              "public"
            ],
            "type": "string",
            "description": "Skool's discovery page shows private communities by default, and public ones are a separate list it never mixes in. Pick Public to search that second list. Checked against every row before it is billed."
          },
          "language": {
            "title": "Language",
            "enum": [
              "any",
              "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"
            ],
            "type": "string",
            "description": "The language the community runs in, as Skool tags it. The listing carries no language field on the row, so this is Skool's own answer passed through rather than something checked here."
          },
          "sortBy": {
            "title": "Order",
            "enum": [
              "trending",
              "top"
            ],
            "type": "string",
            "description": "Only applies when you are browsing without search terms. Skool ignores the order while a search is running, so if you set both, this is dropped and the run says so rather than pretending it did something."
          },
          "maxItems": {
            "title": "Maximum communities",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "How many communities to return, across all search terms. You are billed per community returned, so this is your cost ceiling. Skool itself stops at 1,000 results for any single search, so going past that needs more than one search term."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Optional. Leave this alone unless you need the run to go out through a particular network. Your own proxy servers are used exactly as given."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}