Write

Update LinkedIn Post Draft

Edits a saved LinkedIn post draft, which must be in 'draft' or 'archived' status. Pass any subset of fields to change just what you need, including text, private notes, target audience, attachments, mentions, an external link preview, or the draft status. Returns an error if the draft_id is invalid or the draft has already been published.

update_draftPATCH/api/v1/content/drafts/{draft_id}
crispy — bash

Example prompt: Update draft a1b2c3d4 with the new opening line and add a link preview for crispy.sh

{
  "draft_id": "a1b2c3d4-0000-4f00-8a00-111122223333",
  "status": "draft",
  "text": "New opening line...",
  "updated_at": "2026-06-16T09:10:00Z"
}
Permission scope
core
Access
Write
Category
Content

What you can build

Refine a draft's copy and tone across several rounds before it goes live
Swap or clear attachments and update the link preview card in one call
Archive a draft to hide it from your default list without deleting it
Add private notes and a target audience to keep your content pipeline organized

Parameters

Inputs accepted by update_draft.

NameTypeDescription
draft_idstringUUID of the draft to update (from save_draft or list_drafts)
textstringNew post text (max 3000 chars)
notesstringPrivate notes about this draft
target_audiencestringWho this post is intended for
attachmentsobject[]Replace attachments (pass empty array to clear)
as_organizationstringCompany page ID to post as
mentionsobject[]Replace @-mentions
external_linkstringURL for link preview card
status"draft" | "archived"Move draft to 'archived' to hide from default list, or back to 'draft'

The complete LinkedIn API. Ready when you are.

Connect your first LinkedIn profile in under 5 minutes. Every tool, every seat, no feature gates. Safe limits, warm-up, and full permission control built in.