---
title: "Changes to Creates a new topic, a new post, or a private message"
method: POST
path: "/posts.json"
---

# Changes to Creates a new topic, a new post, or a private message

`POST /posts.json`

> Every recorded change to this operation, newest first.

## Timeline

Changed in 9 of 52 revisions.

- **2026-01-04** `9d06e60c0130`: 1 info
- **2025-10-14** `e90da7406181`: 1 info
- **2025-03-10** `b2fb29c265a4`: 2 info
- **2024-12-29** `40b2f42a88e8`: 1 info
- **2024-08-13** `7153cdbbf109`: 2 breaking
- **2024-01-27** `2df0ac845943`: 1 breaking
- **2023-08-11** `7b91dc8ad5ad`: 3 info
- **2022-12-21** `789fc40f66ad`: 1 info
- **2022-03-05** `e1108b0434c0`: 22 breaking, 5 warning, 54 info

## Changes

- **2026-01-04** `9d06e60c0130`: 1 info
  - added the new optional request property `auto_track`
- **2025-10-14** `e90da7406181`: 1 info
  - added the optional property `post_localizations` to the response with the `200` status
- **2025-03-10** `b2fb29c265a4`: 2 info
  - added the required property `post_url` to the response with the `200` status
  - added the required property `posts_count` to the response with the `200` status
- **2024-12-29** `40b2f42a88e8`: 1 info
  - added the optional property `badges_granted` to the response with the `200` status
- **2024-08-13** `7153cdbbf109`: 2 breaking
  - the `flair_group_id` response's property type changed from `string, null` to `integer, null` for status `200`
  - the `reviewable_id` response's property type changed from `string, null` to `integer, null` for status `200`
- **2024-01-27** `2df0ac845943`: 1 breaking
  - the `score` response's property type changed from `integer` to `number` for status `200`
- **2023-08-11** `7b91dc8ad5ad`: 3 info
  - added the new optional request property `reply_to_post_number`
  - added the optional property `can_see_hidden_post` to the response with the `200` status
  - added the optional property `flair_group_id` to the response with the `200` status
- **2022-12-21** `789fc40f66ad`: 1 info
  - added the optional property `mentioned_users` to the response with the `200` status
- **2022-03-05** `e1108b0434c0`: 22 breaking, 5 warning, 54 info
  - the request's body type changed from `object` to no type
  - removed the enum value `private_message` of the request property `archetype`
  - the response's body type changed from `object` to no type for status `200`
  - the response property `deleted_at` became nullable for the status `200`
  - the response property `display_username` became nullable for the status `200`
  - the response property `edit_reason` became nullable for the status `200`
  - the response property `name` became nullable for the status `200`
  - the response property `primary_group_name` became nullable for the status `200`
  - the response property `reply_to_post_number` became nullable for the status `200`
  - the response property `user_title` became nullable for the status `200`
  - the `actions_summary` response property's minItems was decreased from `1` to `0` for the response status `200`
  - the `avatar_template` response property's minLength was decreased from `1` to `0` for the response status `200`
  - the `cooked` response property's minLength was decreased from `1` to `0` for the response status `200`
  - the `created_at` response property's minLength was decreased from `1` to `0` for the response status `200`
  - the `topic_slug` response property's minLength was decreased from `1` to `0` for the response status `200`
  - the `updated_at` response property's minLength was decreased from `1` to `0` for the response status `200`
  - the `username` response property's minLength was decreased from `1` to `0` for the response status `200`
  - the `deleted_at` response's property type changed from no type to `string, null` for status `200`
  - the `edit_reason` response's property type changed from no type to `string, null` for status `200`
  - the `primary_group_name` response's property type changed from no type to `string, null` for status `200`
  - the `reply_to_post_number` response's property type changed from no type to `string, null` for status `200`
  - the `user_title` response's property type changed from no type to `string, null` for status `200`
  - removed the optional property `avg_time` from the response with the `200` status
  - removed the optional property `hidden_reason_id` from the response with the `200` status
  - removed the optional property `primary_group_flair_bg_color` from the response with the `200` status
  - removed the optional property `primary_group_flair_color` from the response with the `200` status
  - removed the optional property `primary_group_flair_url` from the response with the `200` status
  - api operation id `createTopicPostPM` was added
  - api tag `Private Messages` added
  - added the new optional request property `embed_url`
  - added the new optional request property `external_id`
  - added the new optional request property `target_usernames`
  - added the optional property `raw` to the response with the `200` status
  - the response property `actions_summary` became required for the status `200`
  - the response property `admin` became required for the status `200`
  - the response property `avatar_template` became required for the status `200`
  - the response property `can_delete` became required for the status `200`
  - the response property `can_edit` became required for the status `200`
  - the response property `can_recover` became required for the status `200`
  - the response property `can_view_edit_history` became required for the status `200`
  - …41 more

---

[Operation](https://skmtc.dev/discourse/apis/discourse-api-documentation/docs/posts.json/post.md) - [API](https://skmtc.dev/discourse/apis/discourse-api-documentation.md) - [Page](https://skmtc.dev/discourse/apis/discourse-api-documentation/changes/posts.json/post)
