Bluesky Scheduling API

Schedule Bluesky posts for a future publish time. Send scheduledAt in UTC, queue media and reply chains, and let OpenQuok publish through your PDS.

  • TypeScript SDK

    Node SDK

  • MCP tools

    MCP server

  • OAuth2 apps

    OAuth2 for apps

Built for people who connect their own channels

Who schedules on Bluesky via API?

Vibe coders

Connect your channels in OpenQuok Cloud. Complete OAuth in the dashboard. Then set scheduledAt with curl, the Node SDK, MCP, or CLI. UTC timestamps stay predictable in JSON. Schedule to Bluesky through the same request shape.

CLI and SDK users

Queue publish times in one REST call. OpenQuok delivers on the worker. You do not run cron per platform. Channel and post caps on your plan still apply. Schedule to Bluesky through the same request shape.

Agent operators

Ask your agent to schedule into your workspace. It uses the accounts you connected. It does not onboard other people’s customers onto your token. Schedule to Bluesky through the same request shape.

Federated & custom-PDS users

Stay on bsky.social or run your own PDS. OpenQuok resolves your service URL at connect and schedules through your home server with an app password — not your main account password. Schedule to Bluesky through the same request shape.

Three steps

Add Bluesky scheduling to your product in three steps

Connect Bluesky once, then schedule posts and track delivery through the same API.

New to OpenQuok? Read the getting started guide

Payload preview

Sample channels

Sample channels

Endpoint

POST /api/v1/public/posts

JSON payload
{ "scheduledAt": "2026-01-01T12:00:00.000Z", "status": "scheduled", "body": "Hello from Bluesky — text-only post.", "integrationIds": [ "<integration-id>" ] }

Free payload wizard

Test your social media scheduling API payload before you ship code

Compose a scheduled post with sample channels in your browser. Set publish time, document carousel names, follow-up comments, and optional repeat cadence, then copy the JSON body. Copy JSON is free — no account required. Scheduling and file uploads need a workspace.

Explore request and response examples by format

Static examples mirror shipped OpenQuok public API payloads and success responses.

Schedule a text post on Bluesky. Set scheduledAt to an ISO-8601 UTC timestamp.

Request

JSON body
{ "scheduledAt": "2026-01-01T12:00:00.000Z", "status": "scheduled", "body": "Hello from Bluesky — text-only post.", "integrationIds": [ "<integration-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": "Hello from Bluesky — text-only post.", "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" } ] } }

Node SDK

TypeScript SDK for Node.js backends typed REST calls

Install @openquok/node-sdk in your Next.js or TypeScript backend. Call post() to schedule on Bluesky with the same JSON you send to POST /public/posts. scheduledAt, repeatInterval, and provider settings stay typed.

MCP server

MCP tools for Cursor and Claude Code same public API

Connect your MCP client with an opo_ token. Schedule Bluesky posts from chat with schedulePostTool and integrationList. Agents use the same REST API as curl and the SDK.

OAuth2 for apps

OAuth2 apps user consent workspace tokens

Register your app under Developers → Apps. Users approve access to their workspace, then your app calls the public API for Bluesky scheduling without pasted workspace keys.

Pricing

Transparent pricing for Bluesky scheduling API

Every paid plan includes Public API access, MCP tools, and OAuth apps per workspace. Schedule on Bluesky via REST, Node SDK, or MCP — start with a 7-day free trial, no credit card required.

Solo

$29 / mo

Prototype Bluesky scheduling from curl, SDK, or MCP before you ship to customers.


Features

  • 1 agent workspace
  • 2 competitor domains
  • Total 15 channels
  • Total 5.0 GB cloud storage
  • 500 posts per month
  • Agent integrations
  • Unlimited AI Writer (experimental)
  • Business profiles & directory launch
  • Unlimited AI Summarizer (experimental)
  • Browser extension autofill
  • Public API access
  • Directory submission tracking
  • 1 OAuth app
  • Domain rating analytics
  • 1 MCP server (same OAuth connection)
  • Profile variants per directory

All paid plans include Social scheduling and Directory launch on the same workspace.

7-day free trial — no credit card required to start

Self-host for $0

OpenQuok charges no software fee when you run it on your own infrastructure. You still pay for servers, Supabase, and bandwidth.

Hosted cloud Cloud billing Docker Compose Cloud production stack Self-hosting overview

API examples FAQ

Bluesky Scheduling API answered

Connect your Bluesky account with your app password, set scheduledAt in UTC, and automate posts you approve — not a resale flow for unrelated users’ credentials.

Discord Support