---
title: "Update an existing draft or scheduled post"
method: PATCH
path: "/posts/{id}"
tags: ["Posts"]
---

# Update an existing draft or scheduled post

`PATCH /posts/{id}`

## Request

- Base URL: `https://socialrobot.io/api/v1`
- URL: `https://socialrobot.io/api/v1/posts/{id}`
- Auth: API key in header `x-api-key`

Replaces caption, media, schedule, and platform targets for a draft or scheduled post.

## Path parameters

- `id` string, required: The post ID to update

## Request body

- object
  - `data` object, required
    - `scheduledFor` union, required
      - object
        - `publish` 'DRAFT', required
      - object
        - `publish` 'NOW', required
      - object
        - `publish` 'SCHEDULE', required
        - `date` union, required
          - string
          - string
    - `instagramTargets` union[], required
      - union
        - object
          - `accountId` string, required
          - `caption` string, required
          - `location` object
            - `id` string
            - `name` string, required
            - `address` string
            - `lat` number
            - `lng` number
          - `userTags` object[]
            - `username` string, required
            - `x` number, required
            - `y` number, required
          - `hashtags` string[]
          - `collaborators` object[]
            - `username` string, required
          - `firstComment` string
          - `isAiGenerated` boolean
          - `mediaType` 'IMAGE', required
          - `mediaUrl` string, required
          - `altText` string
          - `transform` object
            - `crop` object, required
              - …
            - `aspect` string, required
            - `width` integer, required
            - `height` integer, required
            - `fit` 'cover' | 'contain', required
            - `userEdited` boolean, required
          - `isStory` boolean
        - object
          - `accountId` string, required
          - `caption` string, required
          - `location` object
            - `id` string
            - `name` string, required
            - `address` string
            - `lat` number
            - `lng` number
          - `userTags` object[]
            - `username` string, required
            - `x` number, required
            - `y` number, required
          - `hashtags` string[]
          - `collaborators` object[]
            - `username` string, required
          - `firstComment` string
          - `isAiGenerated` boolean
          - `mediaType` 'VIDEO', required
          - `mediaUrl` string, required
          - `coverUrl` string
          - `thumbOffset` integer
          - `shareToFeed` boolean
          - `trialReel` object
            - `enabled` boolean
            - `graduationStrategy` 'MANUAL' | 'SS_PERFORMANCE'
          - `isStory` boolean
          - `isReel` boolean
        - object
          - `accountId` string, required
          - `caption` string, required
          - `location` object
            - `id` string
            - `name` string, required
            - `address` string
            - `lat` number
            - `lng` number
          - `userTags` object[]
            - `username` string, required
            - `x` number, required
            - `y` number, required
          - `hashtags` string[]
          - `collaborators` object[]
            - `username` string, required
          - `firstComment` string
          - `isAiGenerated` boolean
          - `mediaType` 'CAROUSEL', required
          - `medias` union[], required
            - union
              - …
          - `isStory` boolean, required
          - `isReel` boolean, required
    - `pinterestTargets` union[], required
      - union
        - object
          - `accountId` string, required
          - `boardId` string, required
          - `title` string
          - `description` string
          - `altText` string
          - `link` union
            - string, uri
            - ''
          - `dominantColor` string
          - `boardSectionId` string
          - `isStandard` boolean
          - `mediaType` 'IMAGE', required
          - `medias` object, required
            - `mediaType` 'IMAGE', required
            - `medias` object[], required
              - …
        - object
          - `accountId` string, required
          - `boardId` string, required
          - `title` string
          - `description` string
          - `altText` string
          - `link` union
            - string, uri
            - ''
          - `dominantColor` string
          - `boardSectionId` string
          - `isStandard` boolean
          - `mediaType` 'VIDEO', required
          - `medias` object, required
            - `mediaType` 'VIDEO', required
            - `medias` object[], required
              - …
    - `twitterTargets` object[], required
      - `accountId` string, required
      - `caption` string, required
      - `medias` object[], required
        - `mediaType` 'IMAGE' | 'VIDEO' | 'GIF', required
        - `mediaUrl` string, required
        - `altText` string
        - `transform` object
          - `crop` object, required
            - `x` number, required
            - `y` number, required
            - `width` number, required
            - `height` number, required
          - `aspect` string, required
          - `width` integer, required
          - `height` integer, required
          - `fit` 'cover' | 'contain', required
          - `userEdited` boolean, required
      - `segments` object[]
        - `caption` string, required
        - `medias` object[], required
          - `mediaType` 'IMAGE' | 'VIDEO' | 'GIF', required
          - `mediaUrl` string, required
          - `altText` string
          - `transform` object
            - `crop` object, required
              - …
            - `aspect` string, required
            - `width` integer, required
            - `height` integer, required
            - `fit` 'cover' | 'contain', required
            - `userEdited` boolean, required
    - `linkedinTargets` object[], required
      - `accountId` string, required
      - `visibility` 'PUBLIC' | 'CONNECTIONS'
      - `caption` string, required
      - `documentTitle` string
      - `firstComment` string
      - `captionMentions` object[]
        - `type` 'person' | 'organization', required
        - `urn` string, required
        - `displayText` string, required
        - `start` integer, required
        - `length` integer, required
        - `imageUrl` string
      - `firstCommentMentions` object[]
        - `type` 'person' | 'organization', required
        - `urn` string, required
        - `displayText` string, required
        - `start` integer, required
        - `length` integer, required
        - `imageUrl` string
      - `poll` object
        - `question` string, required
        - `options` string[], required
        - `duration` 'ONE_DAY' | 'THREE_DAYS' | 'SEVEN_DAYS' | 'FOURTEEN_DAYS'
      - `article` object
        - `source` string, uri, required
        - `title` string, required
        - `description` string
        - `thumbnailUrl` string, uri
        - `thumbnailAltText` string
      - `geoLocations` object[]
        - `urn` string, required
        - `displayText` string, required
      - `medias` union
        - object
          - `mediaType` 'IMAGE', required
          - `medias` object[], required
            - `mediaUrl` string, uri, required
            - `altText` string
            - `transform` object
              - …
        - object
          - `mediaType` 'VIDEO', required
          - `medias` object[], required
            - `mediaUrl` string, uri, required
            - `altText` string
            - `transform` object
              - …
            - `videoMetadata` object, required
              - …
        - object
          - `mediaType` 'DOCUMENT', required
          - `medias` object[], required
            - `mediaUrl` string, uri, required
            - `title` string
    - `blueskyTargets` object[], required
      - `accountId` string, required
      - `caption` string, required
      - `embed` union
        - object
          - `mediaType` 'IMAGE', required
          - `medias` object[], required
            - `alt` string
            - `url` string, uri, required
            - `transform` object
              - …
        - object
          - `mediaType` 'VIDEO', required
          - `medias` object[], required
            - `alt` string
            - `url` string, uri, required
    - `tiktokTargets` object[], required
      - `accountId` string, required
      - `caption` string, required
      - `privacyLevel` 'PUBLIC' | 'FRIENDS' | 'FOLLOWERS' | 'PRIVATE'
      - `disableComment` boolean
      - `autoAddMusic` boolean
      - `disableDuet` boolean
      - `disableStitch` boolean
      - `commercialContent` object
        - `isCommercialContent` boolean
        - `yourBrand` boolean
        - `brandedContent` boolean
      - `photoCoverIndex` integer
      - `isAigc` boolean
      - `videoCoverTimestampMs` integer
      - `medias` union, required
        - object
          - `mediaType` 'IMAGE', required
          - `medias` object[], required
            - `mediaUrl` string, uri, required
            - `transform` object
              - …
        - object
          - `mediaType` 'VIDEO', required
          - `medias` object[], required
            - `mediaUrl` string, uri, required
      - `postMode` 'DIRECT_POST' | 'UPLOAD'
      - `title` string
      - `videoDurationSec` number
    - `mastodonTargets` object[], required
      - `accountId` string, required
      - `caption` string, required
      - `visibility` 'public' | 'unlisted' | 'private' | 'direct'
      - `sensitive` boolean
      - `spoilerText` string
      - `language` string
      - `poll` object
        - `options` object[], required
          - `title` string, required
        - `expiresIn` number, required
        - `multiple` boolean
        - `hideTotals` boolean
      - `medias` object[], required
        - `name` string, required
        - `mediaUrl` string, required
        - `size` number, required
        - `mediaType` 'IMAGE' | 'VIDEO', required
        - `alt` string
        - `transform` object
          - `crop` object, required
            - `x` number, required
            - `y` number, required
            - `width` number, required
            - `height` number, required
          - `aspect` string, required
          - `width` integer, required
          - `height` integer, required
          - `fit` 'cover' | 'contain', required
          - `userEdited` boolean, required
    - `threadsTargets` object[], required
      - `accountId` string, required
      - `caption` string, required
      - `medias` object[], required
        - `mediaType` 'IMAGE' | 'VIDEO', required
        - `mediaUrl` string, required
        - `altText` string
        - `transform` object
          - `crop` object, required
            - `x` number, required
            - `y` number, required
            - `width` number, required
            - `height` number, required
          - `aspect` string, required
          - `width` integer, required
          - `height` integer, required
          - `fit` 'cover' | 'contain', required
          - `userEdited` boolean, required
      - `userTags` unknown[]
        - unknown
      - `hashtags` string[]
      - `linkAttachment` string, uri
      - `topicTag` string
      - `poll` object
        - `options` string[], required
      - `segments` object[]
        - `caption` string, required
        - `medias` object[], required
          - `mediaType` 'IMAGE' | 'VIDEO', required
          - `mediaUrl` string, required
          - `altText` string
          - `transform` object
            - `crop` object, required
              - …
            - `aspect` string, required
            - `width` integer, required
            - `height` integer, required
            - `fit` 'cover' | 'contain', required
            - `userEdited` boolean, required
    - `facebookTargets` object[], required
      - `accountId` string, required
      - `caption` string
      - `medias` object[], required
        - `mediaUrl` string, required
        - `mediaType` 'IMAGE' | 'VIDEO', required
        - `altText` string
        - `transform` object
          - `crop` object, required
            - `x` number, required
            - `y` number, required
            - `width` number, required
            - `height` number, required
          - `aspect` string, required
          - `width` integer, required
          - `height` integer, required
          - `fit` 'cover' | 'contain', required
          - `userEdited` boolean, required
      - `isReel` boolean
      - `isSlideshow` boolean
      - `isStory` boolean
      - `slideshowDuration` number
      - `slideshowTransition` number
      - `coverUrl` string
      - `location` object
        - `id` string, required
        - `name` string, required
        - `address` string
        - `lat` number
        - `lng` number

## Response `200`

Post updated successfully

- object
  - `id` string, required

## Other responses

- `400`: Invalid request data
- `401`: Unauthorized - Invalid or missing API key
- `403`: Forbidden - plan limit, ownership, or quota exceeded (see error message for upgrade link)
- `404`: Post not found
- `500`: Internal server error

---

[API](https://skmtc.dev/socialrobot/apis/socialrobot-io-scheduler-api.md) · [All operations](https://skmtc.dev/socialrobot/apis/socialrobot-io-scheduler-api/llms.txt) · [OpenAPI document](https://skmtc.dev/socialrobot/apis/socialrobot-io-scheduler-api/revisions/c2e9cdf5e75e?raw)
