Schedule the finished video
without opening a dashboard
One call queues a rendered video onto a connected account at the minute you choose. Read the calendar back, filter the queue by status, and let a signed webhook tell you when it actually went out.
POSThttps://autostud.ai/api/v1/actions/publishing.schedule_postThree calls, render to published
Find the destination once, then schedule as much as you like.
- 1
Find the destination
Connected accounts are read-only over the API: they are linked once from the dashboard, because OAuth material must never leave the server. List them and keep the id.
export AUTOSTUD_API_KEY="sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # Read-only on purpose: accounts are connected from the dashboard, # so the OAuth tokens never leave the server. curl "https://autostud.ai/api/v1/social_accounts?status=active&limit=10" \ -H "Authorization: Bearer $AUTOSTUD_API_KEY" - 2
Schedule the post
A video, an account, a moment and a caption. The call returns the queued post, not a published one, so your own scheduler stays the source of truth.
curl -X POST https://autostud.ai/api/v1/actions/publishing.schedule_post \ -H "Authorization: Bearer $AUTOSTUD_API_KEY" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: lighthouse-ep12-tiktok" \ -d '{ "video_id": "0f4c8b71-2d95-47a3-9e6c-15b8ad7f3c20", "account_id": "9a2c6f18-4b70-4d35-8e91-0f7d3c84b562", "scheduled_at": "2026-08-21T18:30:00.000Z", "caption": "Episode 12: the keeper who never slept #lighthouse" }' - 3
Watch it go out
Read the calendar grouped by day, filter the queue by status, or take post.published and stop asking. Failures arrive the same way, with the reason attached.
curl -X POST https://autostud.ai/api/v1/actions/publishing.calendar \ -H "Authorization: Bearer $AUTOSTUD_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "from": "2026-08-17", "to": "2026-08-24" }' # Need something more specific? The queue is a plain resource: curl "https://autostud.ai/api/v1/scheduled_posts?status=error&platform=tiktok" \ -H "Authorization: Bearer $AUTOSTUD_API_KEY"
What a scheduled post takes
Four fields. The rendered file, the destination, the minute and the words.
video_idThe video to publish. It has to be rendered: the queue posts a file, not a timeline.
account_idWhich connected account it goes to. One post, one destination, so a failure never takes the others down.
scheduled_atWhen it should go out. Anything the platform accepts, including right now.
captionThe caption that goes with it. Hashtags and mentions travel in it, exactly as typed.
The queue, readable both ways
The calendar answers "what goes out this week"; the resource answers "what happened to this video". Both are filterable, so a dashboard can be built without a single extra endpoint.
GET /api/v1/social_accountsGET /api/v1/scheduled_postspublishing.calendarKnow when it actually posted
A schedule is a promise, not a result. post.published fires when the platform accepted it, including on a partial publish, where the payload carries the outcome per account.
post.publishedpost.failedQuestions developers ask first
Can I connect an account over the API?
No, and that is deliberate. Accounts are connected from the dashboard so the OAuth tokens never leave the server; the API can list them and publish to them, nothing else.
What happens if a platform refuses the post?
The post lands in the queue with an error status and post.failed fires with the reason. Nothing is retried silently behind your back.
Can I publish the same video to several accounts?
Yes: one call per destination. Keeping them separate means one platform rejecting a caption never cancels the others.
How do I build a calendar view?
publishing.calendar returns the scheduled posts grouped by day between two dates. For anything more specific, filter the scheduled_posts resource on status, platform or video_id.
What you can call
Word-by-word subtitles with Whisper timings, AI emphasis and 116 styles.
Read the guideQueue a render, take the webhook instead of polling, download the mp4.
Read the guideText to video, faceless scenes and clip extension, straight from your backend.
Read the guideGenerate, restyle, crop and cut out backgrounds at scale.
Read the guideText to speech on any layer, Whisper alignment and AI songs.
Read the guideReady to create?
Start generating viral videos in minutes. No credit card required for the free trial.