v2

latestOpenAPI 3.1.02026-08-075421692.0 MB
Posts

Update post

Update an existing post. Draft, scheduled, failed, partial, and cancelled posts can be edited. Published posts can only have their recycling config updated.

To promote a draft to scheduled, send isDraft: false together with scheduledFor (or publishNow: true, or queuedFromProfile). If isDraft is omitted the post keeps its current draft status, so sending only scheduledFor to a draft returns 200 but the post remains a draft.

Non-draft updates run the same per-platform validation as post creation (media requirements, platform-specific field rules, etc.) against the resulting platforms, returning 400 on failure.

put/v1/posts/{postId}

Path parameters

postIdstring required

Request body

titlestring
contentstring
scheduledForstring date-time
publishNowboolean
isDraftboolean

When omitted, the post keeps its current draft status. Send false to promote a draft to scheduled (combined with scheduledFor, publishNow, or a queue).

timezonestring
visibility'public' | 'private' | 'unlisted'
tagsstring[]
hashtagsstring[]
mentionsstring[]
crosspostingEnabledboolean
metadataobject
queuedFromProfilestring

Profile ID to schedule via queue.

queueIdstring

Specific queue ID to use when scheduling via queue.

Example request

{
  "platforms": [
    {
      "platform": "twitter"
    }
  ],
  "recycling": {
    "gap": 2,
    "expireCount": 5
  }
}

Response

Post updated

messagestring
warningsstring[]

Example response

{
  "post": {
    "platforms": [
      {
        "platform": "twitter",
        "platformSpecificData": {
          "geoRestriction": {
            "countries": [
              "US",
              "CA",
              "GB"
            ]
          }
        },
        "status": "pending",
        "platformPostId": "1234567890123456789",
        "platformPostUrl": "https://twitter.com/acmecorp/status/1234567890123456789"
      }
    ]
  }
}