update_draft
Partially update an existing Substack draft by changing its title, subtitle, audience, comment settings, cover image, social preview, SEO fields, or URL slug while leaving the body untouched.
Instructions
Change an existing draft's title, subtitle or any of its Post settings: audience, who may comment, comment order, cover image, social preview title and description, SEO title and description, and URL slug. The update is partial: only the fields you pass change, everything else — including the body — is left alone. A cover_image not already hosted by Substack is downloaded and re-hosted first. Take the id from list_posts or create_draft_post.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | The post's URL slug, the last segment of its public address. Changing it changes the URL the post will be published at. Omit to leave it unchanged. | |
| audience | No | Who the post is for. `founding` is accepted by the API although the editor does not offer it. Omit to leave it unchanged. | |
| draft_id | Yes | The numeric id of the draft to update, as returned by list_posts (`id`) or create_draft_post (`draft_id`). | |
| cover_image | No | The post's cover image, used for the social preview. A URL already on substack-post-media.s3.amazonaws.com or substackcdn.com is used as-is; any other URL is downloaded and re-hosted on Substack first, because Substack server-fetches only its own bucket. Private, loopback and link-local hosts are refused. Max 10 MB. HEIC is not accepted. Omit to leave it unchanged. | |
| description | No | The description shown in the social preview. This is NOT the subtitle — draft_subtitle is the subtitle. Omit to leave it unchanged. | |
| draft_title | No | New title. Omit to leave it unchanged. | |
| social_title | No | The title shown when the post is shared on other platforms. Distinct from draft_title, which is the title on the post itself. Omit to leave it unchanged. | |
| draft_subtitle | No | New subtitle. Omit to leave it unchanged. | |
| search_engine_title | No | The SEO title. Substack recommends under 60 characters. Omit to leave it unchanged. | |
| default_comment_sort | No | The order comments are shown in. Omit to leave it unchanged. | |
| search_engine_description | No | The SEO description. Substack recommends 50-160 characters. Omit to leave it unchanged. | |
| write_comment_permissions | No | Who may comment. `subscribers` means free or paid; `none` disables comments. Omit to leave it unchanged. |