Create a draft
create_draftCreate a private Substack draft post for newsletters, podcasts, or threads. Returns the draft ID needed to edit, schedule, or publish it later.
Instructions
Create a new draft post. The draft is private until you publish it. Returns the draft id, which every other draft tool takes.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | Post body. Markdown by default. Supported: headings, bold, italic, inline code, strikethrough, links, images, nested lists (any depth, ordered and unordered mixed), fenced code blocks with a language, blockquotes and horizontal rules. Two things worth knowing: - A line containing only a YouTube, X, Spotify or Vimeo URL becomes a real embedded player, not a link. Put the URL inside a sentence if you want a plain link. - Write <paywall> on its own line to mark where the paywall starts. Everything after it is for paying subscribers only. One per post. Markdown tables have no equivalent in Substack's editor, so they are preserved verbatim in a code block rather than being mangled. | |
| type | No | Post type. 'newsletter' is the normal long-form post. | newsletter |
| title | Yes | Post title. This is the headline, not an H1 in the body. | |
| audience | No | Who can read it. 'everyone' is public, 'only_free' is any subscriber, 'only_paid' and 'founding' are paying tiers. | everyone |
| subtitle | No | Optional subtitle, shown under the title. | |
| section_id | No | Publish under a section. Call get_sections to find the id. | |
| body_format | No | How to read `body`. 'auto' detects it and is almost always right. Use 'prosemirror' to send a Substack document directly. | |
| cover_image | No | Cover image URL. Use upload_image first to get one hosted on Substack. | |
| publication | No | Which connected publication to act on, matched loosely against its hostname (for example 'example.substack.com' or just 'example'). Defaults to the first connected publication. | |
| social_title | No | Title used on social cards. | |
| search_engine_title | No | SEO title, if different from the title. | |
| search_engine_description | No | SEO meta description. |