> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.beehiiv.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.beehiiv.com/_mcp/server.
# Create workspace post template OAuth Scope: posts:write
POST https://api.beehiiv.com/v2/workspaces/post_templates
Content-Type: application/json
This feature is currently in beta and the API is subject to change.
This endpoint is available to workspaces on the Pro and Enterprise plans.
Create a post template that belongs to the workspace, so every publication in the workspace can start a post from it. A workspace template holds only what does not depend on a publication. Newsletter lists, sending addresses, paywalls, content tags, authors and thumbnails belong to a single publication and are not accepted. Blocks that need a publication (`automated_advertisement_placement`, `embed_link`, `paywall_break`, `poll`, `programmatic_ads_logo` and `rss`), condition sets in `visibility_settings`, and button blocks with a relative `href` are refused. As on every post template, `advertisement` blocks are refused too. Requires an API key with access to every publication in the workspace.
Reference: https://developers.beehiiv.com/api-reference/post-templates/workspace-create
## Authentication
- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer `, where token is your auth token.
## Request
### Body (application/json)
This endpoint expects an object.
- `name` (string, required) — The name of the post template.
- `description` (string, optional) — The description of the post template.
- `blocks` (list of Block, optional) — The structured content blocks posts built from this template start with. Blocks that need a publication are refused; see the endpoint description.
- `body_content` (string, optional) — The content posts built from this template start with, as a single raw HTML string. The HTML is wrapped in an `htmlSnippet` block internally. Note that `