---
title: "PATCH /posts/{postId}"
method: PATCH
path: "/posts/{postId}"
---

# PATCH /posts/{postId}

`PATCH /posts/{postId}`

## Request

- Base URL: `https://api.publinio.com/v1`
- URL: `https://api.publinio.com/v1/posts/{postId}`
- Auth: HTTP bearer

Edit an editable post at its expected revision and save it as a draft. Never publishes. Reuse the idempotency key on retries. Required scope: posts:write.

## Path parameters

- `postId` string, uuid, required

## Headers

- `Idempotency-Key` string, required

## Request body

- object
  - `revision` integer, required
  - `connectionId` string, uuid
  - `mediaAssetIds` string[]
  - `content` string
  - `mediaAssetId` string, uuid, nullable
  - `settings` object
    - `publishing_format` 'post' | 'reel' | 'story', nullable
    - `instagram_share_to_feed` boolean, nullable
    - `tiktok_privacy_level` 'PUBLIC_TO_EVERYONE' | 'MUTUAL_FOLLOW_FRIENDS' | 'FOLLOWER_OF_CREATOR' | 'SELF_ONLY', nullable
    - `tiktok_disable_comment` boolean
    - `tiktok_disable_duet` boolean
    - `tiktok_disable_stitch` boolean
    - `tiktok_brand_content` boolean
    - `tiktok_brand_organic` boolean
    - `youtube_title` string, nullable
    - `youtube_description` string
    - `youtube_tags` string[]
    - `youtube_category_id` string
    - `youtube_privacy_status` 'public' | 'private' | 'unlisted', nullable
    - `youtube_made_for_kids` boolean, nullable
    - `youtube_contains_synthetic_media` boolean
    - `youtube_notify_subscribers` boolean
    - `pinterest_board_id` string, nullable
    - `pinterest_board_name` string, nullable
    - `pinterest_title` string, nullable
    - `pinterest_link` string, nullable
    - `pinterest_alt_text` string, nullable
    - `pinterest_campaign` string, nullable
    - `bluesky_alt_text` string, nullable
    - `mastodon_settings` object, nullable
      - `visibility` 'public' | 'unlisted' | 'private' | 'direct', required
      - `spoilerText` string, required
      - `sensitive` boolean, required
      - `language` string, required
      - `mediaDescriptions` string[], required
    - `reddit_subreddit` string, nullable
    - `reddit_title` string, nullable
    - `reddit_kind` 'self' | 'link', nullable
    - `reddit_url` string, nullable
    - `reddit_flair_id` string, nullable
    - `wordpress_title` string, nullable
    - `wordpress_excerpt` string, nullable
    - `wordpress_slug` string, nullable
    - `wordpress_category_ids` integer[]
    - `wordpress_tag_ids` integer[]

## Response `200`

Result; lists contain data and nextCursor. Posts report their actual status and approval_state.

- object
  - `id` string, uuid, required
  - `status` string, required
  - `revision` integer, required
  - `approval_state` string
  - `scheduled_at` string, date-time, nullable

## Other responses

- `400`: Structured error with error.code, error.message and requestId.
- `401`: Structured error with error.code, error.message and requestId.
- `403`: Structured error with error.code, error.message and requestId.
- `404`: Structured error with error.code, error.message and requestId.
- `409`: Structured error with error.code, error.message and requestId.
- `422`: Structured error with error.code, error.message and requestId.
- `429`: Structured error with error.code, error.message and requestId.
- `500`: Structured error with error.code, error.message and requestId.

---

[API](https://skmtc.dev/publinio/apis/publinio-developer-api.md) · [All operations](https://skmtc.dev/publinio/apis/publinio-developer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/publinio/apis/publinio-developer-api/revisions/2a193fb6939b?raw)
