> ## Documentation Index
> Fetch the complete documentation index at: https://www.posted.cc/llms.txt
> Use this file to discover all available pages before exploring further.

# Update a scheduled post

> Edit an entirely scheduled post using its current version. Publishing posts cannot be edited.

Write access: a member/administrator with a write-enabled credential, or an authorized signed-in user.

Edit an entirely scheduled post using its current version. Publishing posts cannot be edited.

Only entirely scheduled groups can be edited. A stale version conflicts instead of overwriting a teammate's change. Changes apply to the complete sequence and its account overrides.

MCP clients can use [`update_post`](/mcp-reference/update_post) for this operation.

[Request conventions](/api-reference/overview) · [API keys](/api-keys) · [MCP connections](/mcp-connections)


## OpenAPI

````yaml api-reference/openapi.json PATCH /api/posts/{postId}
openapi: 3.1.0
info:
  title: Posted HTTP API
  version: 0.2.0
  description: >-
    All registered application, account, OAuth, MCP transport and health
    endpoints. Publishing and draft request schemas come from the shared runtime
    validators. Replace the example server with your installation. Documentation
    uses simple request examples and does not execute live publishing requests.
servers:
  - url: https://posted-api.example.com
security: []
paths:
  /api/posts/{postId}:
    patch:
      tags:
        - Posts
      summary: Update a scheduled post
      description: >-
        Edit an entirely scheduled post using its current version. Publishing
        posts cannot be edited.


        Only entirely scheduled groups can be edited. A stale version conflicts
        instead of overwriting a teammate's change. Changes apply to the
        complete sequence and its account overrides.


        Write access: a member/administrator with a write-enabled credential, or
        an authorized signed-in user.
      operationId: patch_api_posts_by_postId
      parameters:
        - name: postId
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: >-
            The postId from the corresponding list, record or authorization
            response.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                text:
                  type: string
                  maxLength: 3000
                textOverrides:
                  default: {}
                  type: object
                  propertyNames:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  additionalProperties:
                    type: string
                    maxLength: 3000
                connectionIds:
                  minItems: 1
                  maxItems: 50
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                mediaIds:
                  maxItems: 20
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                mediaOverrides:
                  default: {}
                  type: object
                  propertyNames:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  additionalProperties:
                    maxItems: 20
                    type: array
                    items:
                      type: string
                      format: uuid
                      pattern: >-
                        ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                additionalPosts:
                  default: []
                  type: array
                  items:
                    type: object
                    properties:
                      text:
                        type: string
                        maxLength: 3000
                      textOverrides:
                        default: {}
                        type: object
                        propertyNames:
                          type: string
                          format: uuid
                          pattern: >-
                            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        additionalProperties:
                          type: string
                          maxLength: 3000
                      mediaIds:
                        maxItems: 20
                        type: array
                        items:
                          type: string
                          format: uuid
                          pattern: >-
                            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      mediaOverrides:
                        default: {}
                        type: object
                        propertyNames:
                          type: string
                          format: uuid
                          pattern: >-
                            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        additionalProperties:
                          maxItems: 20
                          type: array
                          items:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    required:
                      - text
                      - mediaIds
                    additionalProperties: false
                scheduledAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                idempotencyKey:
                  type: string
                  pattern: ^[A-Za-z0-9._:-]{8,128}$
                draftSource:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: >-
                        ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    version:
                      type: integer
                      exclusiveMinimum: 0
                      maximum: 9007199254740991
                  required:
                    - id
                    - version
                  additionalProperties: false
                version:
                  type: integer
                  exclusiveMinimum: 0
                  maximum: 9007199254740991
              required:
                - text
                - connectionIds
                - mediaIds
                - scheduledAt
                - idempotencyKey
                - version
              additionalProperties: false
            example:
              text: A small update from the studio.
              connectionIds:
                - 11111111-1111-4111-8111-111111111111
              mediaIds:
                - 44444444-4444-4444-8444-444444444444
              scheduledAt: '2027-01-18T09:30:00.000Z'
              idempotencyKey: studio-edit-2027-01-18
              version: 1
      responses:
        '200':
          description: >-
            Successful response. Examples are illustrative; field values vary by
            record.
          content:
            application/json:
              schema:
                type: object
                properties:
                  post:
                    type: object
                    properties:
                      id:
                        type: string
                      text:
                        type: string
                      additionalPosts:
                        type: array
                        items: {}
                      mediaOverrides:
                        type: object
                        properties: {}
                        additionalProperties: true
                      scheduledAt:
                        type: string
                      idempotencyKey:
                        type: string
                      state:
                        type: string
                      version:
                        type: integer
                      createdAt:
                        type: string
                      media:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                            fileName:
                              type: string
                            contentType:
                              type: string
                            sizeBytes:
                              type: integer
                            width:
                              type: integer
                            height:
                              type: integer
                            alt:
                              type: string
                            durationSeconds:
                              type:
                                - string
                                - 'null'
                          additionalProperties: true
                      managedBy:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                          avatarUrl:
                            type:
                              - string
                              - 'null'
                        additionalProperties: true
                      deliveries:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                            postIndex:
                              type: integer
                            connectionId:
                              type: string
                            provider:
                              type: string
                            accountName:
                              type: string
                            textOverride:
                              type:
                                - string
                                - 'null'
                            state:
                              type: string
                            providerPostId:
                              type:
                                - string
                                - 'null'
                            publishedUrl:
                              type:
                                - string
                                - 'null'
                            error:
                              type:
                                - string
                                - 'null'
                            publishedAt:
                              type:
                                - string
                                - 'null'
                          additionalProperties: true
                    additionalProperties: true
                additionalProperties: true
              example:
                post:
                  id: 22222222-2222-4222-8222-222222222222
                  text: A small update from the studio.
                  additionalPosts: []
                  mediaOverrides: {}
                  scheduledAt: '2027-01-18T09:30:00.000Z'
                  idempotencyKey: studio-edit-2027-01-18
                  state: scheduled
                  version: 2
                  createdAt: '2027-01-18T09:30:00.000Z'
                  media:
                    - id: 44444444-4444-4444-8444-444444444444
                      fileName: studio.jpg
                      contentType: image/jpeg
                      sizeBytes: 245760
                      width: 1600
                      height: 900
                      alt: A bright studio desk beside a window
                      durationSeconds: null
                  managedBy:
                    id: 66666666-6666-4666-8666-666666666666
                    name: Alex Morgan
                    avatarUrl: null
                  deliveries:
                    - id: 77777777-7777-4777-8777-777777777777
                      postIndex: 0
                      connectionId: 11111111-1111-4111-8111-111111111111
                      provider: bluesky
                      accountName: Alex Morgan
                      textOverride: null
                      state: scheduled
                      providerPostId: null
                      publishedUrl: null
                      error: null
                      publishedAt: null
        default:
          description: >-
            Request failure. Inspect code, message and requestId; respect
            Retry-After on HTTP 429.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - bearerAuth: []
        - sessionCookie: []
components:
  schemas:
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - requestId
          properties:
            code:
              type: string
            message:
              type: string
            requestId:
              type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Personal or team Posted REST API key
    sessionCookie:
      type: apiKey
      in: cookie
      name: posted_session
      description: >-
        Signed-in human browser session; mutation requests also need the exact
        UI Origin

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.