A social media scheduling API with a queue and an approval step
Three ways to time a post through one endpoint: an exact time, the next open slot in your queue, or after a person approves it. Your app or agent sends the post once; Octopost publishes it when it is due.
Scheduling is the part you end up maintaining
Native network APIs publish now. Scheduling means running your own job runner, keeping tokens fresh until the post time, retrying when a network is down, and tracking what already went out.
Octopost runs that loop for you. It checks for due posts every minute, refreshes account tokens before they expire, and records the result and post URLs for every network.
Pick how the post is timed
All three use the same request to POST https://octopost.ink/api/posts with your API key:
At an exact time (ISO 8601 with a timezone)
curl https://octopost.ink/api/posts \
-H "Authorization: Bearer $OCTOPOST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "Doors open at 9. Bring questions.",
"platforms": ["twitter"],
"scheduled_for": "2026-10-20T14:00:00Z"
}'Into the queue (next free slot during your active hours)
-d '{ "content": "Tip: you can pin presets per project.", "platforms": ["twitter"], "queueStatus": "queued" }'Hold for approval first
-d '{ "content": "Draft from my agent", "platforms": ["twitter"], "queueStatus": "pending" }'
# later, after a person has looked at it
curl -X POST https://octopost.ink/api/posts/POST_ID/approve \
-H "Authorization: Bearer $OCTOPOST_API_KEY"Set the queue rhythm
curl -X PUT https://octopost.ink/api/queue-settings \
-H "Authorization: Bearer $OCTOPOST_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "intervalHours": 3, "startHour": 9, "endHour": 18, "timezone": "America/Chicago" }'The same actions exist as MCP tools (schedule_post, queue_post, approve_queued_post, reschedule_post, update_queue_settings) for Claude Code, Cursor and Codex. Reference: scheduling, queue, Posts API.
Limits worth knowing
- Posts are checked every minute, so a scheduled post goes out within about a minute of its time.
- One queue per account owner: interval between 1 and 24 hours, active hours in your timezone.
- Text-first networks only. TikTok, YouTube and Instagram are not offered.
- API rate limit: 100 requests a minute and 50 publishes an hour per account.
- X posts use X units from your plan (1 per plain post, 13 with a link). Other networks are not metered.
- No sandbox: your API key posts to your real accounts. Schedule test posts far in the future and delete them.
Questions
Can I change or cancel a scheduled post?
Yes. Update or reschedule it any time before it publishes, or cancel it to turn it back into a draft.
What happens if a network is down at the scheduled time?
The post is retried, and if it still fails it is marked failed with the network’s reason so you or your agent can retry it.
Can I schedule a thread?
Yes. Add a segments array; the whole thread is scheduled as one post and published as a reply chain.
Do I need to run anything on my side?
No. Send the request and Octopost holds the post until it is due. There is no worker or cron job to host.
Start for $1
Every plan includes the MCP server and the REST API. Basic is $29 a month for 3 accounts, Premium $79 for 10, Business $199 for unlimited. The first 7 days cost $1, then the plan renews monthly unless you cancel.
Try it 7 days for $1