# Update a single post

`PUT /posts/{id}.json`

Authentication: no security requirement declared for this operation.

Parameters:

- `id` (path, string, required)
  Type: string

Request body: application/json

Type: any

- `post` (optional)
  Type: object
  
  - `raw` (required)
    Type: string
  
  - `edit_reason` (optional)
    Type: string
  
  Additional properties: false

- `bypass_bump` (optional)
  Type: boolean
  
  Skip bumping the topic when updating the post. Requires
  staff or TL4 permissions.

Additional properties: false

Responses:

- 200: post updated

Content type: application/json

Type: any

- `post` (required)
  Type: object
  
  - `id` (required)
    Type: integer
  
  - `username` (required)
    Type: string
  
  - `avatar_template` (required)
    Type: string
  
  - `created_at` (required)
    Type: string
  
  - `cooked` (required)
    Type: string
  
  - `post_number` (required)
    Type: integer
  
  - `post_type` (required)
    Type: integer
  
  - `posts_count` (required)
    Type: integer
  
  - `updated_at` (required)
    Type: string
  
  - `reply_count` (required)
    Type: integer
  
  - `reply_to_post_number` (required)
    Type: string; nullable
  
  - `quote_count` (required)
    Type: integer
  
  - `incoming_link_count` (required)
    Type: integer
  
  - `reads` (required)
    Type: integer
  
  - `readers_count` (required)
    Type: integer
  
  - `score` (required)
    Type: number
  
  - `yours` (required)
    Type: boolean
  
  - `topic_id` (required)
    Type: integer
  
  - `topic_slug` (required)
    Type: string
  
  - `primary_group_name` (required)
    Type: string; nullable
  
  - `flair_name` (required)
    Type: string; nullable
  
  - `flair_url` (required)
    Type: string; nullable
  
  - `flair_bg_color` (required)
    Type: string; nullable
  
  - `flair_color` (required)
    Type: string; nullable
  
  - `flair_group_id` (optional)
    Type: integer; nullable
  
  - `badges_granted` (optional)
    Type: Array<any>
    
    Items:
      Type: any
  
  - `version` (required)
    Type: integer
  
  - `can_edit` (required)
    Type: boolean
  
  - `can_delete` (required)
    Type: boolean
  
  - `can_recover` (required)
    Type: boolean
  
  - `can_see_hidden_post` (optional)
    Type: boolean
  
  - `can_wiki` (required)
    Type: boolean
  
  - `user_title` (required)
    Type: string; nullable
  
  - `bookmarked` (required)
    Type: boolean
  
  - `raw` (required)
    Type: string
  
  - `actions_summary` (required)
    Type: Array<object>
    
    Items:
      Type: object
      
      - `id` (required)
        Type: integer
      
      - `can_act` (required)
        Type: boolean
      
      Additional properties: false
  
  - `moderator` (required)
    Type: boolean
  
  - `admin` (required)
    Type: boolean
  
  - `staff` (required)
    Type: boolean
  
  - `user_id` (required)
    Type: integer
  
  - `draft_sequence` (required)
    Type: integer
  
  - `hidden` (required)
    Type: boolean
  
  - `trust_level` (required)
    Type: integer
  
  - `deleted_at` (required)
    Type: string; nullable
  
  - `user_deleted` (required)
    Type: boolean
  
  - `edit_reason` (required)
    Type: string; nullable
  
  - `can_view_edit_history` (required)
    Type: boolean
  
  - `wiki` (required)
    Type: boolean
  
  - `reviewable_id` (required)
    Type: integer; nullable
  
  - `reviewable_score_count` (required)
    Type: integer
  
  - `reviewable_score_pending_count` (required)
    Type: integer
  
  - `post_url` (required)
    Type: string
  
  - `post_localizations` (optional)
    Type: Array<any>
    
    Items:
      Type: any
  
  - `mentioned_users` (optional)
    Type: Array<any>
    
    Items:
      Type: any
  
  - `name` (optional)
    Type: string; nullable
  
  - `display_username` (optional)
    Type: string; nullable
  
  Additional properties: false

Additional properties: false

## Examples

### cURL

```bash
curl -X PUT 'https://discourse.example.com/posts/string.json' \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "post": {
    "raw": "string",
    "edit_reason": "string"
  },
  "bypass_bump": true
}'
```

### JavaScript

```javascript
const body = `{
  "post": {
    "raw": "string",
    "edit_reason": "string"
  },
  "bypass_bump": true
}`;

const response = await fetch('https://discourse.example.com/posts/string.json', {
  method: 'PUT',
  headers: {
    'Content-Type': 'application/json',
  },
  body,
});

const data = await response.text();
```

### Python

```python
import requests

body = '''{
  "post": {
    "raw": "string",
    "edit_reason": "string"
  },
  "bypass_bump": true
}'''

response = requests.put(
    'https://discourse.example.com/posts/string.json',
    data=body.encode('utf-8'),
    headers={
        'Content-Type': 'application/json',
    },
)
print(response.text)
```
