Developer API

Social Media Scheduling API

Connect accounts, upload media, validate a schedule, and publish across every connected platform, all through one hosted workspace and plain REST calls.

curl -sS https://getsocialclaw.com/v1/posts/apply \
  -H "Authorization: Bearer $SOCIALCLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -X POST \
  --data '{
    "timezone": "America/New_York",
    "posts": [
      { "account": "meta:instagram:17841400000000000", "description": "Launch day.", "publish_at": "2026-07-21T09:00:00-04:00" },
      { "account": "linkedin:person:123", "description": "Here is what changed and why.", "publish_at": "2026-07-21T09:05:00-04:00" }
    ]
  }'
201 Created
{
  "run": { "id": "run_7k2md9pz", "mode": "scheduled" },
  "posts": [
    { "id": "post_3n0qd1h", "provider": "instagram", "status": "scheduled" },
    { "id": "post_9h4wq2c", "provider": "linkedin", "status": "scheduled" }
  ]
}

One workspace, every platform

Connection, media, validation, and inspection all live behind the same workspace API key, whichever platform a post targets.

Connect once, reuse through API calls

OAuth and manual connections live inside the workspace, so scripts and agents never need to own provider credentials.

One schedule shape

Every post declares an account, content, media, timezone, and publish time, the same shape across every connected provider.

Validate before you apply

Validation catches account, media, setting, and provider-envelope problems before anything is scheduled.

Inspect what actually happened

Runs, posts, attempts, and account health are all queryable after apply, so you are never just trusting a 200 response.

Every call your backend
needs, in one workspace

Validate a schedule, apply it, and check delivery status, all with the same workspace key. Upload media once and reuse the link across every scheduled post.

GET /v1/accounts List connected accounts and which ones are ready to publish.
POST /v1/assets/upload Upload a photo or video and get back a link to reuse.
POST /v1/posts/validate Check a schedule against each provider's rules before anything goes out.
POST /v1/posts/apply Publish now or queue posts for a future time.
GET /v1/runs/{runId}/status Confirm a post actually went live, or catch a failure early.
Open the full API reference

Built for validation-first workflows

Every step in the publish path is checkable before it commits, so a bad request never becomes a bad post.

Validate before you apply

Run the exact schedule through /v1/posts/validate first. A batch either passes together or fails loudly, before anything is scheduled.

Terminal
curl -sS -X POST \
  -H "Authorization: Bearer $SOCIALCLAW_API_KEY" \
  -H "Content-Type: application/json" \
  --data @schedule.json \
  https://getsocialclaw.com/v1/posts/validate
{"valid":true,"posts":12}

Retry safely with an idempotency key

Add idempotencyKey to a request and a repeated call returns the original run instead of creating a second one, so retries on your end are always safe.

schedule.json
{
  "idempotencyKey": "launch_calendar_1",
  "timezone": "America/New_York",
  "posts": []
}

Confirm delivery after publish

Poll run status once a schedule applies to see exactly what published, what is pending, and what needs a retry.

Terminal
curl -sS \
  -H "Authorization: Bearer $SOCIALCLAW_API_KEY" \
  https://getsocialclaw.com/v1/runs/run_7k2md9pz/status
{"run":{"id":"run_7k2md9pz"},"posts":[{"status":"published"}]}

Built for AI Agents
Too

Simply install the skill with this command

Call the API from Claude
Call the API from Codex
Call the API from OpenClaw
Call the API from Hermes

Ready to grow
your socials?

Supported social platforms

Every other way in

Same workspace, same connected accounts, on whichever surface fits what you are building.

What builders are saying

Real quotes from Reddit, G2, Trustpilot, and Instagram.

Works with every major platform

Connect once, then schedule and publish everywhere from the same workspace.

Frequently Asked Questions

Every request needs an Authorization header in the form Bearer sc_live_your_key, using the workspace API key from your dashboard. The same key covers every connected account and platform, so there is no separate key per provider.

Schedule to social media Works with Claude ChatGPT Codex OpenClaw
Start free