Posts
Create, schedule, publish, update and delete posts.
Create a post
/api/postsCreates 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.
| Field | Type | Description |
|---|---|---|
accountIds | string[] | Required. Account ids from GET /api/accounts. |
caption | string | Post text. |
hashtags | string[] | With or without the leading #. |
title | string | Used by YouTube. Falls back to the caption. |
mediaUrls | string[] | Upload URLs or public https URLs. |
scheduledFor | ISO 8601 | When to publish, e.g. 2026-10-16T12:00:00Z. |
publishNow | boolean | Start publishing immediately (runs in the background). |
tiktokOptions | object | Required 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.
| Field | Type | Description |
|---|---|---|
privacyLevel | string | Required. One of the account's privacy_level_options, e.g. PUBLIC_TO_EVERYONE or SELF_ONLY. |
disableComment | boolean | Turn comments off. |
disableDuet | boolean | Turn Duet off. |
disableStitch | boolean | Turn Stitch off. |
commercialContent | boolean | The post promotes a brand, product or service. |
brandOrganic | boolean | Promotes your own brand. |
brandedContent | boolean | Promotes a third party. Not allowed with SELF_ONLY. |
consent | boolean | Required 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
/api/postsReturns 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
/api/postsSend 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
/api/posts?id=post_uuidDeletes the post from Rostido. It doesn't remove an already published post from the platform.