---
title: "Update a scheduled post"
method: PUT
path: "/social/posts/{id}"
tags: ["Social"]
---

# Update a scheduled post

`PUT /social/posts/{id}`

## Request

- Base URL: `https://api.rendley.com/v1`
- URL: `https://api.rendley.com/v1/social/posts/{id}`
- Auth: API key in header `Authorization`

Changes the time, caption or platform settings of a post that hasn't started publishing. Only its author or the workspace owner can.

## Path parameters

- `id` string, required

## Request body

- SocialUpdatePostDTO
  - `caption` string: New caption; omit to keep the current one.
  - `platform_options` SocialPlatformOptions
    - `instagram` SocialInstagramOptions
      - `placement` 'reels' | 'timeline' | 'stories': reels (default), timeline (feed) or stories.
      - `share_to_feed` boolean: A reel also shows in the feed, not only in the Reels tab.
    - `tiktok` SocialTiktokOptions
      - `allow_comment` boolean
      - `allow_duet` boolean
      - `allow_stitch` boolean
      - `is_ai_generated` boolean
      - `privacy_status` 'public' | 'private': public (default) or private.
    - `youtube` SocialYoutubeOptions
      - `made_for_kids` boolean
      - `privacy_status` 'public' | 'unlisted' | 'private': public (default), unlisted or private.
      - `tags` string[], required
      - `title` string: Video title; defaults to the caption, so it is required when the caption is longer than 100 characters.
  - `scheduled_at` string: RFC 3339 time to publish at; omit to keep the current one.

## Response `200`

OK

- object
  - `data` object: Success data
    - `account_username` string
    - `caption` string
    - `created_at` string
    - `error` string
    - `error_code` string: account_expired, media_rejected or rate_limited when the failure is a known kind.
    - `id` string
    - `metrics` SocialPostMetrics
      - `comments` integer
      - `likes` integer
      - `saves` integer
      - `shares` integer
      - `views` integer
    - `platform` string
    - `platform_options` SocialPlatformOptions
      - `instagram` SocialInstagramOptions
        - `placement` 'reels' | 'timeline' | 'stories': reels (default), timeline (feed) or stories.
        - `share_to_feed` boolean: A reel also shows in the feed, not only in the Reels tab.
      - `tiktok` SocialTiktokOptions
        - `allow_comment` boolean
        - `allow_duet` boolean
        - `allow_stitch` boolean
        - `is_ai_generated` boolean
        - `privacy_status` 'public' | 'private': public (default) or private.
      - `youtube` SocialYoutubeOptions
        - `made_for_kids` boolean
        - `privacy_status` 'public' | 'unlisted' | 'private': public (default), unlisted or private.
        - `tags` string[], required
        - `title` string: Video title; defaults to the caption, so it is required when the caption is longer than 100 characters.
    - `project_id` string
    - `result` object
    - `scheduled_at` string
    - `status` string
    - `thumbnail_url` string
  - `error` HttpResponseAPIError
    - `code` string
    - `fields` HttpResponseFieldError[]
      - `field` string
      - `message` string
    - `message` string
  - `meta` unknown

## Other responses

- `400`: VALIDATION_ERROR
- `401`: Unauthorized
- `403`: FORBIDDEN
- `404`: Not Found
- `409`: POST_NOT_SCHEDULED, ACCOUNT_DISCONNECTED, ACCOUNT_RECONNECT_REQUIRED

---

[API](https://skmtc.dev/rendley/apis/rendley-api.md) - [All operations](https://skmtc.dev/rendley/apis/rendley-api/llms.txt) - [OpenAPI document](https://skmtc.dev/rendley/apis/rendley-api/revisions/7eb8713bbf78?raw)
