Publish Skool community posts with title, group, optional label, and images through POST /public/posts — after you connect your own Skool session with the browser extension.
Connect your own social accounts in OpenQuok Cloud. Complete OAuth for each channel yourself. Then publish with curl, the Node SDK, MCP, or CLI. Draft JSON in the payload validator. Publish to Skool through the same request shape.
CLI and SDK users
Call POST /public/posts from a script or CI job. One opo_ token covers every channel you connected. Your plan still caps channels and posts per month. Publish to Skool through the same request shape.
Agent operators
Point Cursor, Claude Code, or another MCP host at your workspace. The agent posts only to accounts you already authorized. Publish to Skool through the same request shape.
Three steps
Add Skool posting,to your product in three steps
Connect Skool once, then publish and track delivery through the same API.
Test your social media posting API payload before you ship code
Compose a post with sample channels in your browser. Copy the JSON body and paste it into curl, your SDK, or an agent workflow. Copy JSON is free — no account required. Scheduling and file uploads need a workspace.
Payload preview
Sample channels
Sample channels
Endpoint
POST /api/v1/public/posts
JSON payload
{"scheduledAt": "2026-01-01T12:00:00.000Z","status": "scheduled","body": "Weekly community update — queue this before you forget to post in the group feed.","integrationIds": [
"<integration-id>"],"providerSettingsByIntegrationId": {
"<integration-id>": {
"skool": {
"title": "Week 12 — shipping notes","group": "<group-id>"}}}}
Explore request and response examples by format
Static examples mirror shipped OpenQuok public API payloads and success responses.
Publish a title and group to Skool with POST /public/posts.
Request
JSON body
{"scheduledAt": "2026-01-01T12:00:00.000Z","status": "scheduled","body": "Weekly community update — queue this before you forget to post in the group feed.","integrationIds": [
"<integration-id>"],"providerSettingsByIntegrationId": {
"<integration-id>": {
"skool": {
"title": "Week 12 — shipping notes","group": "<group-id>"}}}}
Response
JSON body
{"success": true,"data": {
"postGroup": "9a0a1b2c-3d4e-4f5a-9b8c-aa11bb22cc33","posts": [
{"id": "5b3c1d2e-9a3f-4e6b-bb12-2c0a5f1a90a1","state": "QUEUE","publishDate": "2026-01-01T12:00:00.000Z","organizationId": "c1d8a3f4-1234-4abc-bf12-1234567890ab","integrationId": "1f9a4f3a-3b2c-4f4a-9d8e-7a3f6b1c8e22","content": "Weekly community update — queue this before you forget to post in the group feed.","delay": 0,"postGroup": "9a0a1b2c-3d4e-4f5a-9b8c-aa11bb22cc33","title": null,"description": null,"parentPostId": null,"releaseId": null,"releaseUrl": null,"settings": null,"image": null,"intervalInDays": null,"error": null,"deletedAt": null,"createdByUserId": null,"createdAt": "2026-05-10T09:00:00.000Z","updatedAt": "2026-05-10T09:00:00.000Z"}]}}
More social media posting API platforms
Compare Skool with other networks, or jump to platform docs and provider
settings.
Install @openquok/node-sdk in your Next.js or TypeScript backend. Call post() to publish to Skool with the same JSON you send to POST /public/posts. Media, integrations, and provider settings stay typed.
npm install @openquok/node-sdk
import Openquok from '@openquok/node-sdk';
const openquok = new Openquok('opo_your_programmatic_token');
await openquok.post({
{
"scheduledAt": "2026-01-01T12:00:00.000Z",
"status": "scheduled",
"body": "Weekly community update — queue this before you forget to post in the group feed.",
"integrationIds": [
"<integration-id>"
],
"providerSettingsByIntegrationId": {
"<integration-id>": {
"skool": {
"title": "Week 12 — shipping notes",
"group": "<group-id>"
}
}
}
}
});
# After you add OpenQuok in your MCP client config:
# Ask your agent to publish to Skool.
> Publish to Skool now:
> Product launch recap with a link to our pricing page.
MCP server
MCP toolsfor Cursor and Claude Codesame public API
Connect your MCP client with an opo_ token. Publish Skool posts from chat with schedulePostTool and integrationList. Agents use the same REST API as curl and the SDK.
Register your app under Developers → Apps. Users approve access to their workspace, then your app calls the public API for Skool publishing without pasted workspace keys.
# Redirect the user to approve your app
https://www.openquok.com/oauth/authorize?client_id=oqc_your_client_id&response_type=code&state=random123
# Exchange the code for an opo_ access token, then call:
curl -H "Authorization: Bearer opo_oauth_access_token" \
https://api.openquok.com/api/v1/public/integrations
# Match identifier: skool — copy id into integrationIds
Pricing
Transparent pricingfor Skoolposting API
Every paid plan includes Public API access, the Node SDK, MCP tools, and OAuth apps per workspace. Publish to Skool from REST, SDK, or MCP — start with a 7-day free trial, no credit card required.
Solo
$29/ mo
Prototype Skool posting from curl, SDK, or MCP before you ship to customers.
Connect your Skool session with the OpenQuok extension, then publish or schedule to groups you belong to — for your account, not as a resale service for unrelated users.
Connect your Skool session through your browser extension approval. Do not run a “post to Skool for my customers” service without each customer connecting their own Skool channel in their own workspace. OpenQuok is built for your automation — agents, scripts, and drafts you approve — not for reselling scheduling to end users on credentials they never connected. If your product’s users must connect their social accounts, use OAuth2 for apps so each user authorizes their channel; see the connect channels guide.
Call GET /public/integrations with your workspace programmatic token. Match the `identifier` field to `skool` and copy the channel UUID into `integrationIds`. Field tables for Skool live on Skool provider settings.
Yes. Send one POST /public/posts payload with the channel UUID in `integrationIds`. Set `status` to `scheduled` and `scheduledAt` to publish immediately or at a future time. Use `draft` when you want to persist without enqueuing. See Skool CLI examples for copy-paste recipes.
No. OpenQuok bills workspaces on paid plans, not per-post credits. Public API access requires a paid tier. Each opo_ token gets 30 requests per hour on OpenQuok Cloud. Scheduled posts still count toward your monthly post quota. See cloud limits.
Use the interactive Payload Wizard on this page with sample channels, or open the full wizard in your workspace after you sign in. Copy JSON stays free on public pages. Provider field reference: Skool settings. Channel landing: Skool.
A channel is one connected social account (Facebook, Instagram, LinkedIn, TikTok, YouTube, Threads, and more). Connect channels in the dashboard. Browse networks on Supported channels.