Schedule from your terminal: introducing the Schedulin CLI, SDKs, and public API


Scheduling is the kind of thing people want to automate. You've already got a content pipeline ā a repo of generated clips, a Notion board, an internal tool, an AI agent writing captions ā and the last step is always the same: get it onto the platforms, at the right time, without copy-pasting into a dashboard.
Today that last step is an API call. We're launching the Schedulin developer platform: a public REST API, official SDKs for five languages, and a command-line tool you can run with a single npx command. Anything you can do in the dashboard ā connect channels, draft and schedule posts, upload media, pull analytics ā you can now do from code.
The CLI: scheduling in one command
The fastest way to try it is the CLI. No install required:
npx @schedulin/cli posts create \
--social-account-id <id> \
--caption "Shipped a new feature š" \
--media https://cdn.example.com/launch.jpg \
--action schedule \
--scheduled-at 2026-07-01T15:00:00Z
Store your API key once and it's there for every command:
npx @schedulin/cli config set api-key sk_live_...
npx @schedulin/cli accounts list
It's built to be safe inside scripts. posts create defaults to a draft, so nothing goes
out unless you ask it to. Publishing and deleting prompt for confirmation ā and in a
non-interactive context (a CI job, a cron task) they refuse to run unless you pass --yes. Add
--json to any command to pipe clean output straight into jq:
# every connected channel's id
npx @schedulin/cli accounts list --json | jq -r '.data[].id'
Install it globally (npm i -g @schedulin/cli) and it's just schedulin.
SDKs for five languages
If you'd rather call the API from your application, we generate official, typed SDKs from the same OpenAPI spec that powers the docs ā so they never drift from the real API:
- TypeScript ā
npm i @schedulin/sdk - Python ā
pip install schedulin - Go
- PHP
- Ruby
A typed call looks the same everywhere. In TypeScript:
import { SchedulinClient } from "@schedulin/sdk";
const client = new SchedulinClient({ apiKey: process.env.SCHEDULIN_API_KEY });
const accounts = await client.socialAccounts.list();
await client.posts.create({
socialAccountId: accounts.data[0].id,
caption: "Hello from the SDK š",
media: [],
action: "draft",
});
A REST API built for humans and agents
Under both the CLI and the SDKs is a plain REST API at https://api.schedulin.app, versioned
under /v0. It's JSON over HTTPS, authenticated with a workspace-scoped key, and every endpoint
is described in a machine-readable OpenAPI reference
ā which means it's just as easy to point an AI agent at it as it is to write a client by hand.
It's the same surface the dashboard uses: connect and manage channels, draft / schedule / queue / publish posts, upload media with presigned URLs, organize with tags, and read per-post analytics.
What you can build
- Auto-publish from your pipeline ā when a render finishes or a doc is approved, schedule it.
- CI and cron jobs ā a
schedulin posts createstep in a workflow, gated by--yes. - AI agents ā hand an agent the OpenAPI spec and let it draft and schedule on your behalf.
- Internal tools ā wire scheduling into the dashboard your team already uses.
Get started
Grab an API key in your workspace settings, then head to the docs:
- Developer docs ā guides, examples, and the full API reference.
- CLI guide ā install, auth, and every command.
- Quick Start ā your first authenticated request.
We'd love to see what you build on it.