MySkoolDocs
Esc

API reference

Responses & errors

Every route answers with the same envelope, and every failure carries a stable error code.

Response envelope#

Success puts the resource under data (and pagination under meta); failure puts a stable code under error.

envelope
// success
{ "data": <resource | resource[]>,
  "meta": { "pagination": { "cursor": "abc", "hasMore": true, "truncated": false } } }
 
// error
{ "error": { "code": "session_unavailable", "message": "…", "status": 401 } }

Error codes#

CodeHTTPWhen
unauthorized401API key missing, invalid or expired.
session_unavailable401The Skool connection expired or is missing. Reconnect the account.
forbidden403The API key lacks the scope this route requires, or X-Skool-Connection names a connection the key is not bound to.
invalid_request400Bad input: missing ?group=, invalid JSON body, empty title/content, unknown label (the message lists the group's labels).
not_found404Group not cached for this connection, or the post/comment does not exist (or was already deleted).
payment_required402No active subscription or trial on the account. Start or reactivate the plan at myskool.xyz/billing.
rate_limited42960 req/min per key exceeded. See Retry-After.
quota_exceeded429Monthly quota (30,000 requests) used up. Resets on the 1st of the month (UTC). No Retry-After.
connection_limit409The plan's 3 Skool connections are in use. Delete one to connect another (management API).
skool_bad_request400/403/404Skool returned a hard 4xx (passthrough).
skool_upstream_error502Skool failed (5xx/429) after retries.
skool_shape_changed502Skool's response shape changed (unrecognizable payload).

MySkool is not affiliated with Skool. Skool™ is a trademark of Skool, Inc.