Skool API-as-a-service

The Skool API you were promised.

Skool ships no public API, so everyone rebuilds the same Playwright + api2 hack. We reverse-engineered it and host it — a REST API, SDK and agent CLI over your own Skool account.

Free tierVersioned /v1SDK + CLI + MCP
curl https://api.skooly.dev/v1/groups/$GID/posts \
  -H "Authorization: Bearer $SKOOL_API_KEY"

The same call · three ways

The problem

Skool has no public API.

So every builder writes the same thing from scratch: headless Chrome to log in, cookies to persist, CloudFront to get past, snake_case vs camelCase to reconcile, cursors to paginate. It breaks the week Skool ships a redesign.

What everyone rebuilds

  • Playwright login + captcha handling✓ hosted
  • Session capture & refresh✓ hosted
  • CloudFront 403 bypass (realistic UA)✓ hosted
  • api2.skool.com cursor pagination✓ hosted
  • snake_case ↔ camelCase tolerance✓ hosted
  • Rate limiting that won't flag the account✓ hosted

We host the hard part. You call an endpoint.

What you get

Four pillars, one hosted engine.

REST API/v1 · JSON

Versioned, documented, rate-limited.

Every Skool action under stable /v1 routes. One Bearer token. A standard JSON envelope with honest pagination and typed error codes.

TypeScript SDK@skoolapi/sdk

Typed calls, auto-pagination.

new SkoolClient({ apiKey }). Typed errors mirror the envelope, and iterate() walks every cursor for you.

AI-agent CLI + MCPskool · mcp

--json on every command.

Built for agents: deterministic fields, stable exit codes, an MCP server so Claude & Codex call it natively.

Managed sessionsno browser ops

We keep the login alive.

You authenticate your own Skool account once. We capture the session, refresh it before it expires, and throttle to protect the account.

The surface

One resource at a time.

Read endpoints ship first (Phase 1). Writes, members, courses and chat follow.

How it works

Three steps to your first call.

01

Sign up

Create a developer account with a magic link or Google. No credit card to start.

free tier · magic-link / Google

02

Connect your Skool

Link your own authenticated Skool account once. Your password is used a single time for login and never stored — we keep only the session.

your own account · consented

03

Mint a key & call the API

Generate an sk_live_… key and start reading your feed, posts and comments over a documented REST API.

Bearer token · /v1

Code-forward

We already solved the hard parts.

A direct transport hits api2.skool.com with the session cookie — sub-200ms per call, no browser. CloudFront, sessions, cursor pagination and snake_case are handled once, behind the endpoint.

<200ms direct pathdefensive parsersshape-drift alarm
GET /v1/posts/:id/comments
{
  "data": [
    { "id": "9e1d…", "content": "how do I…",
      "authorName": "Sofía", "likeCount": 3 }
  ],
  "meta": { "pagination": { "hasMore": false } }
}
Pricing

Usage tiers.

Keyed to request volume and rate limits. Custom plans for high volume.

Free
$0forever

For dev & testing.

  • 30 req/min
  • 5k req/month
  • 1 connection
  • Community support
Get API key
Scale
$199/mo

For high volume.

  • 600 req/min
  • 1M+ req/month
  • 25 connections
  • Priority support
Talk to us
FAQ

Before you build on it.

Is this against Skool's terms?

Skooly automates your own authenticated Skool account, which you consent to when you connect it. We never touch accounts you don't own. That said, this rides an unofficial surface — read the disclaimer below.

How stable is an unofficial API?

Skool has no public API. We track their internal api2 surface and the Next.js data payloads, with defensive parsers and a 'shape changed' alarm (skool_shape_changed) so you get a clear error instead of silent garbage when Skool drifts.

How long does a session stay alive?

As long as Skool keeps it valid. We re-verify connections on a schedule and flip them to 'expired' before your calls start 401-ing, so you're told to reconnect early.

What are the rate limits?

Per-key limits by tier (Free 30/min, Pro 120/min, Scale 600/min) with standard X-RateLimit-* headers, plus a per-connection throttle that protects your underlying Skool account from bursts.

Ship it

Stop rebuilding the Skool hack.

Sign up, connect your Skool account, mint a key, and make your first call today.