Use case

Schedule posts

Works on: Instagram, TikTok, YouTube, X, Threads, Facebook, LinkedIn

Queue posts for later. Creator OS publishes them at the time you set, so nothing on your side has to stay running. Use Best time to post to pick slots your audience actually engages with.

  1. 1

    Optional: find the hours that work best for your account.

    GET/v1/analytics/best-timeBest time to post reference →
    curl "https://creatoros-production-5658.up.railway.app/v1/analytics/best-time?platform=instagram" \
      -H "Authorization: Bearer $CREATOROS_API_KEY"
  2. 2

    Upload the media.

    curl -X POST "https://creatoros-production-5658.up.railway.app/v1/media" \
      -H "Authorization: Bearer $CREATOROS_API_KEY" \
      -H "Content-Type: video/mp4" \
      -H "X-Filename: clip.mp4" \
      --data-binary @clip.mp4
  3. 3

    Create the post with schedule_at and timezone.

    curl -X POST "https://creatoros-production-5658.up.railway.app/v1/posts" \
      -H "Authorization: Bearer $CREATOROS_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "content": "New episode drops tonight 🎙️",
        "platforms": [
          "instagram",
          "tiktok",
          "youtube",
          "linkedin"
        ],
        "media": [
          "med_b0Wq7Yx2Rk9LzT4nVs1Pc8Hf3Jd6Gm5Ea2Uo7Ki9Nr0"
        ],
        "title": "Episode 12: Hooks that work",
        "schedule_at": "2026-10-02T18:00:00",
        "timezone": "America/New_York"
      }'
  4. 4

    See the queue.

    curl "https://creatoros-production-5658.up.railway.app/v1/posts?status=scheduled" \
      -H "Authorization: Bearer $CREATOROS_API_KEY"
  5. 5

    Move a post to a new time. To cancel it instead, delete it.

    PATCH/v1/posts/{postId}Update a post reference →
    curl -X PATCH "https://creatoros-production-5658.up.railway.app/v1/posts/post_3JSJJWvgHKZH-Vjy_ggeP792GJbvjQ1pZzbqlPEgKJOO" \
      -H "Authorization: Bearer $CREATOROS_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "schedule_at": "2026-10-03T18:00:00",
        "timezone": "America/New_York",
        "cover": "med_Qx4Tn8Lb2Wd6Hs0Rv3Kc7Jm1Pf5Gy9Ze4Au8Oi2Ns6"
      }'

Subscribe to post.published and post.failed with webhooks to hear back without polling.

With the CLI

$ creatoros analytics:best-time --platform instagramCopy
$ creatoros posts:create --platforms instagram,tiktok --text "..." --media <med_id> --scheduledAt 2026-10-02T18:00:00 --timezone America/New_YorkCopy
$ creatoros posts:list --status scheduled --prettyCopy

Or ask your agent

“Schedule next week from content-library/, one post per day at my best posting times.”