API reference

Posts

Create, schedule, publish, update and delete posts.

Create a post

POST/api/posts

Creates one post per account in accountIds. With a future scheduledFor the posts are scheduled; with publishNow they publish immediately; otherwise they're saved as drafts.

FieldTypeDescription
accountIdsstring[]Required. Account ids from GET /api/accounts.
captionstringPost text.
hashtagsstring[]With or without the leading #.
titlestringUsed by YouTube. Falls back to the caption.
mediaUrlsstring[]Upload URLs or public https URLs.
scheduledForISO 8601When to publish, e.g. 2026-10-16T12:00:00Z.
publishNowbooleanStart publishing immediately (runs in the background).
tiktokOptionsobjectRequired when any account is TikTok. See below.
curl -X POST https://rostido.com/api/posts \
  -H "X-API-Key: rostido_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "accountIds": ["youtube_UCxxxx"],
    "caption": "Full set drops tonight",
    "hashtags": ["livemusic"],
    "mediaUrls": ["/uploads/3f9c…e1.mp4"],
    "scheduledFor": "2026-10-16T12:00:00Z"
  }'

Returns 201 with the created posts. With publishNow, publishing runs in the background: list the posts to see each one move from scheduled to published or failed.

TikTok options Soon

Read the allowed values for an account from GET /api/tiktok/creator-info first.

FieldTypeDescription
privacyLevelstringRequired. One of the account's privacy_level_options, e.g. PUBLIC_TO_EVERYONE or SELF_ONLY.
disableCommentbooleanTurn comments off.
disableDuetbooleanTurn Duet off.
disableStitchbooleanTurn Stitch off.
commercialContentbooleanThe post promotes a brand, product or service.
brandOrganicbooleanPromotes your own brand.
brandedContentbooleanPromotes a third party. Not allowed with SELF_ONLY.
consentbooleanRequired true: you accept TikTok's Music Usage Confirmation (and Branded Content Policy if set).
"tiktokOptions": {
  "privacyLevel": "PUBLIC_TO_EVERYONE",
  "disableComment": false,
  "disableDuet": true,
  "disableStitch": false,
  "commercialContent": false,
  "brandOrganic": false,
  "brandedContent": false,
  "consent": true
}

List posts

GET/api/posts

Returns up to 200 posts, newest scheduled time first. Optional query parameters: accountId, status, from and to (ISO dates on the scheduled time).

curl "https://rostido.com/api/posts?status=scheduled" -H "X-API-Key: rostido_xxx"

Update a post

PATCH/api/posts

Send the id and the fields to change: caption, hashtags, title, mediaUrls, scheduledFor, tiktokOptions, or status (draft or scheduled only). A scheduledFor in the past publishes right away; null cancels the schedule.

curl -X PATCH https://rostido.com/api/posts \
  -H "X-API-Key: rostido_xxx" \
  -H "Content-Type: application/json" \
  -d '{"id": "post_uuid", "scheduledFor": "2026-10-17T09:00:00Z"}'

Delete a post

DELETE/api/posts?id=post_uuid

Deletes the post from Rostido. It doesn't remove an already published post from the platform.