Skip to content

Update Schedule ​

PUThttps://api.repliz.com/public/schedule/{scheduleId}

Change the content, time, or options of a scheduled post before it is published.

Endpoint Details ​

  • Authentication: Basic Auth (Authorization: Basic Base64(AccessKey:SecretKey))
  • Access Tier: Premium+

Parameters ​

ParameterTypeRequiredDescription
scheduleIdstringYesID of the schedule, the scheduleId returned by Create Schedule or the _id from Get Schedule.

Request Body ​

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.

FieldTypeRequiredDescription
titlestringNoTitle 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 "".
descriptionstringFor textThe 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.
topicstringNoThreads only: the topic tag shown on the post, for example Social Media. Send "" for other platforms.
typestringYesThe kind of post: text, image, video, reel, album, link, or story. It decides which medias are needed, see Supported Post Types.
mediasarrayYesThe images and videos of the post, as Media objects. Send [] for text.
metaobjectFor linkThe shared link of a link post. See Meta Object. Other types can leave it out.
additionalInfoobjectNoOptions 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.
repliesarrayNoThreads and X (Twitter) only: posts added under the main post as a thread, in order. See Reply Object. Send [] for other platforms.
scheduleAtstringYesWhen 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.
templateIdstringNoID 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.

Media Object ​

One image or video in medias. Only the first item is posted, except for album.

FieldTypeRequiredDescription
typestringYesimage or video.
urlstringYesPublic 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.
thumbnailstringNoCover 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.
customThumbnailbooleanNotrue makes Facebook, Instagram, TikTok, and YouTube use thumbnail as the video cover. Otherwise the platform picks one. Default false.
altstringNoAlt text that describes the image for screen readers. Read by Instagram (image and album) and Pinterest (cut to 500 characters).

Meta Object ​

The link of a link post. Only type: "link" reads it.

FieldTypeRequiredDescription
urlstringYesThe page to share. Facebook builds the preview card from this page itself.
titlestringNoPreview title, shown in Repliz. Get Link Metadata returns it for a URL.
descriptionstringNoPreview 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.

Additional Info Object ​

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.

FieldTypePlatformsDescription
isAiGeneratedbooleanTikTok video, YouTube video, Facebook reel, PinterestDeclares 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.
isDraftbooleanTikToktrue 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.
isAutoAddMusicbooleanTikTok image and albumtrue lets TikTok add a recommended track to the photo post. Ignored when music.id is set. Default false.
isShareToFeedbooleanInstagram video and reeltrue also shows the Reel on the profile grid. false keeps it in the Reels tab only.
privacystringYouTube videoWho 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.
trialParamsobjectInstagram video and reelPosts the Reel as a trial reel, shown to non-followers first. See Trial Params Object. Leave it out for a regular Reel.
collaboratorsstring[]Instagram image, video, reel, and albumUsernames, without @, invited to co-author the post, for example ["replizofficial"]. Up to 3. The post shows on their profile once they accept.
mentionsstring[]Instagram storyUsernames, without @, mentioned in the story. Up to 3.
musicobjectTikTokA TikTok track to put on the post. See Music Object. Leave id empty for no track.
productsarrayShopeeProducts tagged on the video, from Get Shopee Product. See Product Object.
tagsstring[]YouTubeSearch tags for the video, for example ["Repliz", "social media"]. All tags together can't exceed 500 characters.
targetCountriesstring[]Facebook text, image, video, album, and linkShows 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.
channelobjectWhatsApp, Telegram, PinterestWhere 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.
linkstringPinterestThe page the pin opens when someone taps it, for example https://repliz.com.
textAttachmentobjectThreads textA long text attached under the post, read like an article. See Text Attachment Object. Only the main post gets it, not replies.

Music Object ​

additionalInfo.music, TikTok only. Pick a track with Get TikTok Music and send its fields as they are returned.

FieldTypeRequiredDescription
idstringYesTikTok music ID. It's the only field sent to TikTok. Leave it empty for no track.
artiststringNoArtist name, shown in Repliz.
namestringNoTrack name, shown in Repliz.
thumbnailstringNoTrack cover image URL, shown in Repliz.
volumeobjectNoHow loud the track and the video's own sound are, for video only. Photo posts play the track at TikTok's default volume.
volume.musicnumberNoTrack volume in percent. The dashboard sends 100. Left out, TikTok gets 50.
volume.videonumberNoVolume of the video's original sound in percent. The dashboard sends 50. Left out, TikTok gets 100.

Trial Params Object ​

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.

FieldTypeRequiredDescription
graduationStrategystringYesMANUAL: 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.

Text Attachment Object ​

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.

FieldTypeRequiredDescription
textstringNoThe 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.
linkstringNoA link shown at the end of the attachment, for example https://repliz.com. It has to be a valid URL when it's set.
  • A Threads post can have at most 5 links, counting the links in description and link. A post with more fails when it's published.
  • Bold, italic, and other text styles aren't supported. The text is posted as plain text.

See the Threads specifications.

Channel Object ​

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.

FieldTypeRequiredDescription
idstringYesID of the channel, group, or board. On WhatsApp, its ending decides where the post goes: @newsletter for a Channel, @g.us for a group.
typestringYeschannel 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.
namestringNoName of the channel, group, or board, shown in Repliz.
picturestringNoIts picture, shown in Repliz: a URL on WhatsApp and Pinterest, a data: URI on Telegram. Can be empty.
  • One schedule goes to one place. To send the same post to several channels, groups, or boards, or to Status or Story as well, create one schedule for each.
  • Repliz doesn't check id when the schedule is saved. An ID the account can't post to only fails when the schedule is published.
  • A Telegram Story is shown to the account's contacts. Telegram has no text-only Story, so a text schedule without a channel is posted as an image with the text on it.

Product Object ​

An item of additionalInfo.products, Shopee only. Send the products as they are returned by Get Shopee Product.

FieldTypeRequiredDescription
idstringYesShopee item ID. Sent to Shopee with name.
namestringYesProduct name.
thumbnailstringNoProduct image URL, shown in Repliz.
currencystringNoCurrency code of price, shown in Repliz.
pricenumberNoProduct price, shown in Repliz.

Reply Object ​

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.

FieldTypeRequiredDescription
typestringYestext, image, video, or album.
descriptionstringFor textText of the reply.
mediasarrayYesMedia objects, with the same rules as the main post. Send [] for text.
topicstringNoThreads topic tag of the reply.
titlestringNoNot 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.

Fields Each Platform Reads ​

PlatformTypesFields read besides description and medias
Facebooktext, image, video, reel, album, link, storytitle (video), meta.url (link), targetCountries, isAiGenerated (reel), thumbnail and customThumbnail (video, reel)
Instagramimage, video, reel, album, storyalt, collaborators, isShareToFeed, trialParams, mentions (story), thumbnail and customThumbnail (video, reel)
Threadstext, image, video, albumtopic, replies, textAttachment (text)
TikTokimage, video, albumtitle (image, album), music, isAutoAddMusic (image, album), isAiGenerated (video), isDraft, thumbnail and customThumbnail (video)
YouTubevideotitle, tags, privacy, isAiGenerated, thumbnail and customThumbnail
LinkedIntext, image, video, albumNo other fields
Shopeevideoproducts. description is required, 1 to 150 characters
X (Twitter)text, image, video, albumreplies. Links in the text are written as repliz[.]com, so X doesn't turn them into links
WhatsApptext, image, videochannel, thumbnail
Telegramtext, image, videochannel, thumbnail
Pinterestimage, 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.

Example Request ​

bash
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"
  }'
javascript
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);
javascript
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);

Response ​

json
// No content returned on success
json
{
  "code": 404,
  "message": "schedule not found"
}
json
{
  "code": 401,
  "message": "unauthorized"
}