---
title: "Create a new post"
method: POST
path: "/v1/posts"
tags: ["posts"]
---

# Create a new post

`POST /v1/posts`

Create a new post in your publication. The publication is identified by the API key provided in the Authorization header.

**Requirements:**
- `markdown` field is required and will be converted to TipTap JSON format
- `title` field is required

**Behavior:**
- The post will be created as published by default
- If `sendNewsletter` is true, an email will be sent to all subscribers

## Request body

- object
  - `markdown` string, required — Post content in Markdown format
  - `title` string, required — Title of the post
  - `subtitle` string — Optional subtitle or brief summary
  - `imageUrl` string, uri — Optional URL to the post's cover image
  - `sendNewsletter` boolean — Whether to send an email newsletter to subscribers. Default: false
  - `slug` string — Optional URL-friendly identifier for the post. If not provided, will be generated from title
  - `postPreview` string — Optional preview text for the post. If not provided, will be generated from content
  - `categories` string[] — Optional array of category tags for the post

## Response `200`

Post created successfully

- object
  - `id` string, required — The ID of the created post

## Other responses

- `400` — Invalid request - check required fields
- `401` — Invalid or missing API key
- `404` — Publication not found
- `500` — Internal server error

## Changes

- **2025-12-16** `44ce6b0df8f8` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/paragraph-xyz/apis/paragraph-api/changes/v1/posts/post.md)

---

[API](https://skmtc.dev/paragraph-xyz/apis/paragraph-api.md) · [All operations](https://skmtc.dev/paragraph-xyz/apis/paragraph-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/paragraph-xyz/paragraph-api/revisions/d92bbffc08cf/schema)
