auto stud
APISocial Media Publishing API

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_post

Three calls, render to published

Find the destination once, then schedule as much as you like.

  1. 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. 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. 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_id

The video to publish. It has to be rendered: the queue posts a file, not a timeline.

account_id

Which connected account it goes to. One post, one destination, so a failure never takes the others down.

scheduled_at

When it should go out. Anything the platform accepts, including right now.

caption

The 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.calendar

Know 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.failed

Questions 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.

Ready to create?

Start generating viral videos in minutes. No credit card required for the free trial.

Secure payments
Instant access
Cancel anytime