Schedule posts from your own code
One REST API for Instagram, LinkedIn, X, TikTok, Pinterest, Threads, Facebook, Bluesky, and Mastodon. OpenAPI at /api/openapi.json. Auth is an API key in the x-api-key header.
curl -X POST https://socialrobot.io/api/posts \
-H "x-api-key: $SOCIALROBOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "New oat flat white is live.",
"scheduledAt": "2026-08-01T09:00:00Z",
"targets": [
{ "platform": "instagram", "accountId": "acc_123" },
{ "platform": "linkedin", "accountId": "acc_456" },
{ "platform": "x", "accountId": "acc_789" }
]
}'Connected accounts you already linked in the app
Same engine as the dashboard
If it works in SocialRobot, you can drive it over HTTP. Posts land on the calendar like ones you typed by hand.
POST /posts
One request, multiple platform targets. Override the caption per network when you need to.
Schedule and move
Set scheduledAt, change it later with PATCH, or delete drafts and queued posts.
Media upload
Ask for a presigned URL, PUT the file, attach it to the post. Images and video.
Per-network extras
Pinterest boards, TikTok creator info, and other endpoints the composer already uses.
Three steps, then curl
You don't register Meta or LinkedIn apps yourself. SocialRobot already holds those connections.
Link accounts in the app
Connect Instagram, LinkedIn, and the rest under Scheduler → Accounts. The API publishes through those logins.
Create an API key
Scheduler settings → API keys. Copy it once and send it as x-api-key (Bearer also works).
Hit the endpoints
GET /accounts for IDs, then POST /posts with content, schedule, and targets.
What you get day one
OpenAPI 3
Full spec at /api/openapi.json. Import it into Postman, Insomnia, or your codegen.
API keys
Server-to-server auth without a separate OAuth app. Create, scope, and revoke keys in the dashboard.
Rate limits
2,000 requests/minute per account and 200,000/day, shared with MCP. Same ceilings on Free and paid.
FAQ
Grab a key and POST /posts
Sign up, connect the accounts you publish to, create an API key, then schedule from your script.
Get an API key