Queue a post
Each channel can have a posting schedule (its queue) set up in the dashboard. Instead of picking a time yourself, let Schedulin put the post in the next free slot.
Preview the next slots
GET /v0/social-accounts/{id}/next-slots returns upcoming free slot times in UTC, computed
from the channel's queue schedule, per-slot capacity, and timezone. limit (default 5, max
50) controls how many; after (ISO 8601) starts the search from a later time.
curl "https://api.schedulin.app/v0/social-accounts/acc_123/next-slots?limit=3" \ -H "x-api-key: $SCHEDULIN_API_KEY"
{ "slots": [ "2026-06-02T09:00:00.000Z", "2026-06-02T13:00:00.000Z", "2026-06-03T09:00:00.000Z" ] }
const { slots } = await client.socialAccounts.nextSlots({ id: "acc_123", limit: 3 });
slots = client.social_accounts.next_slots("acc_123", limit=3).slots
slots is empty when the channel has no queue times configured.
Add a post to the queue
Create the post with action: "queue" and no scheduledAt. It's scheduled for the next free
slot:
curl -X POST https://api.schedulin.app/v0/posts \ -H "x-api-key: $SCHEDULIN_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "socialAccountId": "acc_123", "caption": "Tip of the day: batch your content on Mondays.", "action": "queue" }'
const post = await client.posts.create({ socialAccountId: "acc_123", caption: "Tip of the day: batch your content on Mondays.", action: "queue", });
post = client.posts.create( social_account_id="acc_123", caption="Tip of the day: batch your content on Mondays.", action="queue", )
The response has status: "SCHEDULED" and the chosen scheduledAt. If the channel has no
free slot, the request fails with 400 ("No available queue slot found for this social
account.") — fall back to action: "schedule" with an explicit scheduledAt, such as one of
the slots above.