The complete unofficial Skool API documentation — read AND write to Skool communities via the Apify-hosted Skool All-in-One API actor. Integrations, recipes, glossary, comparisons.
(or email + password instead of cookies — see authentication)
System
Action
Params
Description
system:health
—
Healthcheck. No auth, no Skool calls. Returns {ok, version, node, timestamp}. Used as the input schema’s default action so Apify’s daily quality check always passes
system:debug
cookies, groupSlug
SSR diagnostics: returns Skool homepage status + buildId extracted + SSR fetch result + REST client probe. Useful for debugging when something doesn’t work (added in 0.3.25)
Auth
Action
Params
Description
auth:login
email, password, groupSlug
Login via headless Playwright (~10s). Returns cookies + buildId valid ~3.5 days. → Authentication
Posts & Comments
Skool’s posts and comments are the same object. See Posts & Comments for the data model.
Create a post (plain text content). notifyAll emails every member — admin-only and irreversible
posts:createPoll
options (2+)
Create a poll, then pass pollId to posts:create. Polls have no title: the question is the post content
posts:update
postId, title?, content?
Edit a post or comment
posts:delete
postId
Delete a post or comment (cascades)
posts:pin
postId
Pin to top of feed
posts:unpin
postId
Remove pin
posts:vote
postId, vote: "up" \| ""
Like / unlike
posts:getComments
postId
Comment tree via REST (~2s, max ~35 top-level). Free read
posts:getCommentsFull
postId
Full thread coverage via created-gt cursor pagination (~5s per 1000 comments, no cap). Real comment ids, author ids and ISO dates. $0.05 scrape-operation event. Use when posts:getComments truncates. Rewritten in 0.3.44
posts:createComment
rootId, parentId, content
Create comment or nested reply. For top-level: rootId == parentId == postId. For nested: parentId == commentId
Notifications are stored as messages. Cross-group: the feed returns items from every community the account belongs to. See Notifications for the data model.