{
  "openapi": "3.0.1",
  "info": {
    "title": "Skool Community Finder",
    "description": "Skool community finder: search Skool communities (groups) by keyword, category, price, language or private/public, with no links needed. Each row has the link, name, member count, price, description, whether it is public and when it was created. $2.80 per 1,000 communities.",
    "version": "0.1",
    "x-build-id": "z7txekH6Cj974bvDZ"
  },
  "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."
          },
          "communityType": {
            "title": "Private or public",
            "enum": [
              "any",
              "private",
              "public"
            ],
            "type": "string",
            "description": "The default shows private communities, and public ones are a separate list. 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."
          },
          "minMembers": {
            "title": "Minimum members",
            "minimum": 1,
            "type": "integer",
            "description": "Only return communities with at least this many members. Leave it empty for no minimum. The run reads the search results and keeps the communities that pass, and the ones below aren't charged. A high minimum can return fewer communities than you asked for: with a minimum set, a run reads at most ten times Maximum communities, never fewer than 1,000 and never more than 5,000."
          },
          "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. Up to 1,000 results per 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}