---
title: "Update a post"
method: PATCH
path: "/posts/{id}"
tags: ["Posts"]
---

# Update a post

`PATCH /posts/{id}`

## Request

- Base URL: `https://doomscrollr.com/api/v1`
- URL: `https://doomscrollr.com/api/v1/posts/{id}`
- Auth: HTTP bearer

Update title, description, status (draft/published), or tags. Only fields you pass are changed.

## Path parameters

- `id` integer, required

## Request body

- object
  - `title` string
  - `description` string
  - `status` 'published' | 'draft' | 'scheduled'
  - `tags` string
  - `publish_at` string, date-time: Future publish time. When provided, status is set to scheduled.
  - `shoppable` boolean: Show or hide the buy button on this post

## Response `200`

Updated

- Post
  - `id` integer
  - `url` string
  - `title` string
  - `description` string
  - `image` string, uri
  - `status` 'published' | 'draft' | 'scheduled'
  - `post_type` string
  - `created_at` string, date-time
  - `publish_at` string, date-time, nullable

## Other responses

- `429`: Monthly API rate limit exceeded

---

[API](https://skmtc.dev/doomscrollr/apis/doomscrollr-api.md) · [All operations](https://skmtc.dev/doomscrollr/apis/doomscrollr-api/llms.txt) · [OpenAPI document](https://skmtc.dev/doomscrollr/apis/doomscrollr-api/revisions/0bd7ab034196?raw)
