English
English
Appearance
English
English
Appearance
https://api.repliz.com/public/schedule/{scheduleId}Change the content, time, or options of a scheduled post before it is published.
Authorization: Basic Base64(AccessKey:SecretKey))| Parameter | Type | Required | Description |
|---|---|---|---|
scheduleId | string | Yes | ID of the schedule, the scheduleId returned by Create Schedule or the _id from Get Schedule. |
The body has the same fields as Create Schedule, without accountId: a schedule stays on its account. Every field is replaced, so send the whole schedule, not only what changes. Updating doesn't change status, so a schedule that was already published isn't posted again, and a failed one needs Retry Schedule after the fix.
| Field | Type | Required | Description |
|---|---|---|---|
title | string | No | Title of the post. Read by YouTube (video title, which YouTube needs), Facebook video, TikTok image and album (up to 90 characters), and Pinterest (pin title, cut to 100 characters). Other platforms ignore it, so send "". |
description | string | For text | The caption, or the post text for text. YouTube uses it as the video description and Pinterest as the pin description, cut to 800 characters. Shopee needs 1 to 150 characters. Not used by story. |
topic | string | No | Threads only: the topic tag shown on the post, for example Social Media. Send "" for other platforms. |
type | string | Yes | The kind of post: text, image, video, reel, album, link, or story. It decides which medias are needed, see Supported Post Types. |
medias | array | Yes | The images and videos of the post, as Media objects. Send [] for text. |
meta | object | For link | The shared link of a link post. See Meta Object. Other types can leave it out. |
additionalInfo | object | No | Options that only some platforms have, such as music, privacy, or the channel to post to. See Additional Info Object. Required for Pinterest, which needs additionalInfo.channel. |
replies | array | No | Threads and X (Twitter) only: posts added under the main post as a thread, in order. See Reply Object. Send [] for other platforms. |
scheduleAt | string | Yes | When to publish, as an ISO 8601 date and time with a time zone, for example 2026-06-01T12:00:00.000Z (UTC) or 2026-06-01T19:00:00+07:00. Repliz picks up due schedules every minute, so a time in the past is published within a minute. |
templateId | string | No | ID of an automation template, the _id from Get Template. Its configuration is copied into the schedule when it's saved and set on the post after it's published, so later changes to the template don't affect this schedule. Not applied on Shopee, X (Twitter), or Pinterest. |
One image or video in medias. Only the first item is posted, except for album.
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | image or video. |
url | string | Yes | Public URL of the file. The platform downloads it when the post is published, so it has to stay reachable until then. Files in Repliz Storage work everywhere. For TikTok, WhatsApp, and Telegram, files hosted elsewhere are copied to Repliz Storage first. |
thumbnail | string | No | Cover image URL for a video. Facebook, Instagram, TikTok, and YouTube use it only when customThumbnail is true. WhatsApp, Telegram, and Pinterest use it whenever it's set. |
customThumbnail | boolean | No | true makes Facebook, Instagram, TikTok, and YouTube use thumbnail as the video cover. Otherwise the platform picks one. Default false. |
alt | string | No | Alt text that describes the image for screen readers. Read by Instagram (image and album) and Pinterest (cut to 500 characters). |
The link of a link post. Only type: "link" reads it.
| Field | Type | Required | Description |
|---|---|---|---|
url | string | Yes | The page to share. Facebook builds the preview card from this page itself. |
title | string | No | Preview title, shown in Repliz. Get Link Metadata returns it for a URL. |
description | string | No | Preview description, shown in Repliz. |
For link, put the preview image from Get Link Metadata in medias as an image too. It isn't sent to Facebook, but a link schedule without an image is rejected.
Options that only some platforms have. A field that doesn't apply to the account's platform, or to the post type, is ignored, so the same object can be sent for every account.
| Field | Type | Platforms | Description |
|---|---|---|---|
isAiGenerated | boolean | TikTok video, YouTube video, Facebook reel, Pinterest | Declares that the post was made or changed with AI, with each platform's own label: TikTok's AI-generated content label, YouTube's altered or synthetic content disclosure, Facebook's AI info on the Reel, and Pinterest's AI-modified disclosure. Default false. |
isDraft | boolean | TikTok | true sends the post to the creator's TikTok inbox as a draft instead of publishing it. The schedule's postId is then INBOX_TIKTOK, so automation and statistics don't run on it. Default false. |
isAutoAddMusic | boolean | TikTok image and album | true lets TikTok add a recommended track to the photo post. Ignored when music.id is set. Default false. |
isShareToFeed | boolean | Instagram video and reel | true also shows the Reel on the profile grid. false keeps it in the Reels tab only. |
privacy | string | YouTube video | Who can watch the video: public for everyone, unlisted for people with the link, private for the channel owner only. Left out or empty, it's public. Any other value returns 400. A private video doesn't appear in Get Content, so its automation and statistics don't run. |
trialParams | object | Instagram video and reel | Posts the Reel as a trial reel, shown to non-followers first. See Trial Params Object. Leave it out for a regular Reel. |
collaborators | string[] | Instagram image, video, reel, and album | Usernames, without @, invited to co-author the post, for example ["replizofficial"]. Up to 3. The post shows on their profile once they accept. |
mentions | string[] | Instagram story | Usernames, without @, mentioned in the story. Up to 3. |
music | object | TikTok | A TikTok track to put on the post. See Music Object. Leave id empty for no track. |
products | array | Shopee | Products tagged on the video, from Get Shopee Product. See Product Object. |
tags | string[] | YouTube | Search tags for the video, for example ["Repliz", "social media"]. All tags together can't exceed 500 characters. |
targetCountries | string[] | Facebook text, image, video, album, and link | Shows the post only to people in these countries, as ISO 3166-1 alpha-2 codes, for example ["ID", "MY"]. Leave it empty to show it everywhere. |
channel | object | WhatsApp, Telegram, Pinterest | Where the post goes: a WhatsApp Channel or group, a Telegram channel or group, or a Pinterest board. See Channel Object. Required for Pinterest. Without it, WhatsApp posts to the number's Status and Telegram to the account's Story. |
link | string | The page the pin opens when someone taps it, for example https://repliz.com. | |
textAttachment | object | Threads text | A long text attached under the post, read like an article. See Text Attachment Object. Only the main post gets it, not replies. |
additionalInfo.music, TikTok only. Pick a track with Get TikTok Music and send its fields as they are returned.
| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | TikTok music ID. It's the only field sent to TikTok. Leave it empty for no track. |
artist | string | No | Artist name, shown in Repliz. |
name | string | No | Track name, shown in Repliz. |
thumbnail | string | No | Track cover image URL, shown in Repliz. |
volume | object | No | How loud the track and the video's own sound are, for video only. Photo posts play the track at TikTok's default volume. |
volume. | number | No | Track volume in percent. The dashboard sends 100. Left out, TikTok gets 50. |
volume. | number | No | Volume of the video's original sound in percent. The dashboard sends 50. Left out, TikTok gets 100. |
additionalInfo.trialParams, Instagram only, for video and reel. A trial reel is shown to non-followers first, so you can see how it does before your followers see it.
| Field | Type | Required | Description |
|---|---|---|---|
graduationStrategy | string | Yes | MANUAL: you share it with your followers yourself from the Instagram app. SS_PERFORMANCE: Instagram shares it with your followers automatically if it performs well. An empty string posts a regular Reel. Any other value returns 400. |
See the Instagram specifications.
additionalInfo.textAttachment, Threads only, for text. The text is attached under the post and opens like an article, so a post can say much more than the 500 characters of description. Only the main post gets it, not replies.
| Field | Type | Required | Description |
|---|---|---|---|
text | string | No | The attached text, up to 10,000 characters. Line breaks are kept. Leave it empty, or leave the object out, for no attachment. Longer text returns 400. |
link | string | No | A link shown at the end of the attachment, for example https://repliz.com. It has to be a valid URL when it's set. |
description and link. A post with more fails when it's published.See the Threads specifications.
additionalInfo.channel, for WhatsApp, Telegram, and Pinterest. Send one item as it is returned by Get WhatsApp Channel, Get Telegram Channel, or Get Pinterest Board.
| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | ID of the channel, group, or board. On WhatsApp, its ending decides where the post goes: @newsletter for a Channel, @g.us for a group. |
type | string | Yes | channel or group, or board on Pinterest. On Telegram, this decides where the post goes, because channel and supergroup IDs look the same. Pinterest needs board. |
name | string | No | Name of the channel, group, or board, shown in Repliz. |
picture | string | No | Its picture, shown in Repliz: a URL on WhatsApp and Pinterest, a data: URI on Telegram. Can be empty. |
id when the schedule is saved. An ID the account can't post to only fails when the schedule is published.text schedule without a channel is posted as an image with the text on it.An item of additionalInfo.products, Shopee only. Send the products as they are returned by Get Shopee Product.
| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Shopee item ID. Sent to Shopee with name. |
name | string | Yes | Product name. |
thumbnail | string | No | Product image URL, shown in Repliz. |
currency | string | No | Currency code of price, shown in Repliz. |
price | number | No | Product price, shown in Repliz. |
An item of replies, for a thread on Threads or X (Twitter). Other platforms reject replies with 400. Each reply is posted under the one before it, 20 seconds apart. If one fails, the replies after it aren't posted, and its error shows in that item of replies in Get One Schedule.
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | text, image, video, or album. |
description | string | For text | Text of the reply. |
medias | array | Yes | Media objects, with the same rules as the main post. Send [] for text. |
topic | string | No | Threads topic tag of the reply. |
title | string | No | Not used. Send "". |
On X (Twitter), every reply uses one credit, like the main post. The thread needs credits for the post and all its replies before it starts, and replies that aren't posted don't use a credit.
| Platform | Types | Fields read besides description and medias |
|---|---|---|
text, image, video, reel, album, link, story | title (video), meta.url (link), targetCountries, isAiGenerated (reel), thumbnail and customThumbnail (video, reel) | |
image, video, reel, album, story | alt, collaborators, isShareToFeed, trialParams, mentions (story), thumbnail and customThumbnail (video, reel) | |
| Threads | text, image, video, album | topic, replies, textAttachment (text) |
| TikTok | image, video, album | title (image, album), music, isAutoAddMusic (image, album), isAiGenerated (video), isDraft, thumbnail and customThumbnail (video) |
| YouTube | video | title, tags, privacy, isAiGenerated, thumbnail and customThumbnail |
text, image, video, album | No other fields | |
| Shopee | video | products. description is required, 1 to 150 characters |
| X (Twitter) | text, image, video, album | replies. Links in the text are written as repliz[.]com, so X doesn't turn them into links |
text, image, video | channel, thumbnail | |
| Telegram | text, image, video | channel, thumbnail |
image, video, album (2 to 5 images) | title (up to 100 characters), channel (required), link, alt, isAiGenerated, thumbnail. description is cut to 800 characters |
Text limits and media requirements for each platform are in the Schedule Specifications.
curl -X PUT "https://api.repliz.com/public/schedule/680affa5ce12f2f72916f67e" \
-H "Authorization: Basic $(echo -n 'YOUR_ACCESS_KEY:YOUR_SECRET_KEY' | base64)" \
-H "Content-Type: application/json" \
-d '{
"title": "Baju Baru",
"description": "Baju baru alhamdulillah",
"topic": "Fashion",
"type": "text",
"medias": [],
"meta": {
"title": "",
"description": "",
"url": "",
"thumbnail": ""
},
"additionalInfo": {
"isAiGenerated": false,
"isDraft": false,
"isAutoAddMusic": false,
"isShareToFeed": false,
"privacy": "public",
"trialParams": {
"graduationStrategy": ""
},
"collaborators": [],
"mentions": [],
"music": {
"id": "",
"artist": "",
"name": "",
"thumbnail": "",
"volume": {
"video": 50,
"music": 100
}
},
"products": [],
"tags": [],
"targetCountries": []
},
"replies": [],
"scheduleAt": "2026-05-30T09:01:26.510Z"
}'import axios from 'axios';
const scheduleId = '680affa5ce12f2f72916f67e';
const response = await axios.put(
`https://api.repliz.com/public/schedule/${scheduleId}`,
{
title: 'Baju Baru',
description: 'Baju baru alhamdulillah',
topic: 'Fashion',
type: 'text',
medias: [],
meta: {
title: '',
description: '',
url: '',
thumbnail: '',
},
additionalInfo: {
isAiGenerated: false,
isDraft: false,
isAutoAddMusic: false,
isShareToFeed: false,
privacy: 'public',
trialParams: { graduationStrategy: '' },
collaborators: [],
mentions: [],
music: {
id: '',
artist: '',
name: '',
thumbnail: '',
volume: { video: 50, music: 100 },
},
products: [],
tags: [],
targetCountries: [],
},
replies: [],
scheduleAt: '2026-05-30T09:01:26.510Z',
},
{
auth: {
username: 'YOUR_ACCESS_KEY',
password: 'YOUR_SECRET_KEY',
},
},
);
console.log(response.data);const credentials = btoa('YOUR_ACCESS_KEY:YOUR_SECRET_KEY');
const scheduleId = '680affa5ce12f2f72916f67e';
const response = await fetch(`https://api.repliz.com/public/schedule/${scheduleId}`, {
method: 'PUT',
headers: {
Authorization: `Basic ${credentials}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'Baju Baru',
description: 'Baju baru alhamdulillah',
topic: 'Fashion',
type: 'text',
medias: [],
meta: {
title: '',
description: '',
url: '',
thumbnail: '',
},
additionalInfo: {
isAiGenerated: false,
isDraft: false,
isAutoAddMusic: false,
isShareToFeed: false,
privacy: 'public',
trialParams: { graduationStrategy: '' },
collaborators: [],
mentions: [],
music: {
id: '',
artist: '',
name: '',
thumbnail: '',
volume: { video: 50, music: 100 },
},
products: [],
tags: [],
targetCountries: [],
},
replies: [],
scheduleAt: '2026-05-30T09:01:26.510Z',
}),
});
const data = await response.json();
console.log(data);// No content returned on success{
"code": 404,
"message": "schedule not found"
}{
"code": 401,
"message": "unauthorized"
}