Use casesScheduling API
Schedule posts from your own code
Set a future postDate and a status of SCHEDULED. Siar holds the post, publishes it when the time comes, and tells you what happened. Nothing needs to stay running on your side.
- UTC
postDatein the future; no scheduler to run yourself. - Drafts for work in progress, free of quota until you schedule them.
- A target is claimed atomically, so a post is never published twice.
- Quotas are checked when you schedule, never at publish time.
A scheduled post is a normal post
Create it with a future postDate and status: "SCHEDULED". Move it by patching postDate, or turn it back into a draft.
curl -X POST "https://api.siaran.my/api/v1/post" \
-H "x-api-key: $SIAR_API_KEY" \
-H "content-type: application/json" \
-d '{
"teamId": "TEAM_ID",
"title": "Launch day",
"postDate": "2026-11-02T09:00:00.000Z",
"status": "SCHEDULED",
"socialAccountTypes": [
"INSTAGRAM",
"LINKEDIN",
"BLUESKY"
],
"data": {
"INSTAGRAM": {
"type": "POST",
"text": "We shipped. Details in the comments.",
"uploadIds": [
"UPLOAD_ID"
]
},
"LINKEDIN": {
"text": "We shipped today. Here is what changed and why.",
"uploadIds": [
"UPLOAD_ID"
]
},
"BLUESKY": {
"text": "We shipped today.",
"uploadIds": [
"UPLOAD_ID"
]
}
},
"firstComment": {
"INSTAGRAM": "Changelog: example.com/changelog"
}
}' Reliable by construction
Publishing a target starts with a conditional database update that claims it, so a restart, a retry sweep or a second worker cannot send the same post twice. If a network is slow to finish processing video, Siar keeps polling it and settles the post when the network answers.
Failed targets are retried with backoff and can be retried by hand up to 6 times; retries do not count against your quota.
Quotas fit scheduling
A scheduled post counts in the month you create it, not the month it publishes. That means you can fill next quarter's calendar today if the quota allows, and a post that is already scheduled is never refused later because the month rolled over.
Daily caps per account (for example 5 TikTok posts a day on the Free plan) are checked against the post's date, so over-booking a day fails when you schedule, not at 9 a.m.
Works with every supported network
Frequently asked questions
Which time zone does postDate use?
UTC, as an ISO 8601 timestamp. Convert the user's local time before you send it.
How far ahead can I schedule?
As far as your monthly quota allows. The quota counts when you create the post, not when it publishes.
How do I know a scheduled post went out?
Subscribe to the post.published webhook, which fires once when the post reaches a final state, or read the post and check its status.
Keep reading
Your first post isone request away.
The Free plan includes 20 posts and 200 uploads a month across 3 teams. No card needed.