---
search:
  tags:
    - Content
    - PUT
seo:
  description: >-
    Update a post. Reference for the PUT /posts/{id} endpoint in the Bolder API
    v2.
sidebar:
  label: Update a post
  badge: PUT
title: Update a post
type: openapi-operation
---
`PUT /posts/{id}`

**Request body** (`application/json`, required)

- `title` (string)
- `body` (string)
- `slug` (string)
- `description` (string)
- `short_description` (string)
- `published` (boolean)
- `published_on` (string<date-time>)
- `format` (string) — \`markdown\` is accepted as input and converted to \`html\` before saving.
- `blog_id` (integer) — Move the post to another blog of this shop. A translation takes its \`translation\_lang\` from the new blog.
- `translation_of` (integer | null) — Make this post a translation of another one (same rules as when creating), or send \`null\` to detach it and make it an original post again.

Request body example:

```json
{
  "title": "string",
  "body": "string",
  "slug": "string",
  "description": "string",
  "short_description": "string",
  "published": true,
  "published_on": "2019-08-24T14:15:22Z",
  "format": "html",
  "blog_id": 0,
  "translation_of": 0
}
```

**Responses**

- `200` — Post updated

Response example, 200:

```json
{
  "_links": {
    "property1": {
      "href": "string",
      "templated": true,
      "method": "get",
      "title": "string",
      "type": "string"
    },
    "property2": {
      "href": "string",
      "templated": true,
      "method": "get",
      "title": "string",
      "type": "string"
    }
  },
  "id": 0,
  "shop_id": 0,
  "title": "string",
  "slug": "string",
  "body": "string",
  "description": "string",
  "short_description": "string",
  "published": true,
  "published_on": "2019-08-24T14:15:22Z",
  "format": "html",
  "blog_id": 0,
  "translation_of": 0,
  "translation_lang": "string",
  "user_id": 0,
  "created_on": "2019-08-24T14:15:22Z",
  "updated_on": "2019-08-24T14:15:22Z"
}
```
