---
title: "Save a LinkedIn post draft for update_draft or publish_draft (max 3000 chars). Attachments publish. Company-page, mentio"
method: POST
path: "/api/v1/content/drafts"
tags: ["content"]
---

# Save a LinkedIn post draft for update_draft or publish_draft (max 3000 chars). Attachments publish. Company-page, mentio

`POST /api/v1/content/drafts`

## Request

- Base URL: `https://crispy.sh`
- URL: `https://crispy.sh/api/v1/content/drafts`
- Auth: HTTP bearer

## Request body

- object
  - `text` string, required: Draft post text (max 3000 chars)
  - `notes` string: Private notes about this draft (not published). Use for revision context, target audience, etc.
  - `target_audience` string: Who this post is intended for (private, not published).
  - `attachments` object[]: Optional attachments (images, documents). Stored as metadata for publish_draft to use.
    - `url` string, required: Public HTTPS URL of the attachment
    - `filename` string: Filename with extension (e.g. 'chart.png')
  - `as_organization` string: NOT SUPPORTED. Publishing on behalf of a company page is not available. A draft saved with this set is refused at publish time and stays a draft.
  - `mentions` object[]: NOT PUBLISHABLE. Stored for editing, but publish_draft refuses the draft until mentions are removed.
    - `name` string, required: Display name of the person
    - `urn` string, required: LinkedIn URN (e.g. 'urn:li:person:ACoAA...')
  - `external_link` string: NOT PUBLISHABLE. Stored for editing, but publish_draft refuses the draft until this is removed. Put the URL in the post text instead.

## Response `200`

Success

## Other responses

- `401`: Missing or expired API key
- `403`: Insufficient key scope or permission denied
- `429`: Rate limit exceeded

---

[API](https://skmtc.dev/crispy/apis/crispy-rest-api.md) · [All operations](https://skmtc.dev/crispy/apis/crispy-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crispy/apis/crispy-rest-api/revisions/6bed0974d9ce?raw)
