---
title: "Changes to Send a message to a chat room (creates room lazily if needed)"
method: POST
path: "/v1/chat/messages"
---

# Changes to Send a message to a chat room (creates room lazily if needed)

`POST /v1/chat/messages`

> Every recorded change to this operation, newest first.

## Timeline

Changed in 17 of 87 revisions.

- **2026-10-26** `97ecc6caa9a3`: 2 info
- **2026-10-25** `8d368659667e`: 298 breaking, 299 info
- **2026-10-23** `c32e4c511ac5`: 1 info
- **2026-10-15** `c3b07d60c348`: 1 breaking, 12 info
- **2026-10-12** `e2cc50ac0860`: 1 info
- **2026-10-07** `440fd2d98e59`: 11 info
- **2026-10-04** `ec3c2c8d9c62`: 2 info
- **2026-09-27** `cc5ceda89fac`: 1 warning
- **2026-09-10** `4201e72dc54f`: 2 info
- **2026-09-08** `fae004332dd6`: 2 info
- **2026-09-02** `9d78f6feb4e7`: 1 info
- **2026-09-01** `bd81b4235627`: 3 info
- **2026-08-28** `792ac9f54322`: 1 info
- **2026-08-25** `f91fbc22fde3`: 21 info
- **2026-08-21** `9651975196e7`: 2 info
- **2026-08-16** `522e926825a5`: 3 info
- **2026-08-05** `c5a5175474ef`: 1 info

## Changes

- **2026-10-26** `97ecc6caa9a3`: 2 info
  - added the optional property `quoted_post/anyOf[#/components/schemas/BasePost]/recap_content/anyOf[#/components/schemas/RecapContent]/translations/de` to the response with the `200` status
  - added the optional property `quoted_post/anyOf[#/components/schemas/BasePost]/recap_content/anyOf[#/components/schemas/RecapContent]/translations/es` to the response with the `200` status
- **2026-10-25** `8d368659667e`: 298 breaking, 299 info
  - the response property `attachments/items/blur_hash` became nullable for the status `200`
  - the response property `attachments/items/duration` became nullable for the status `200`
  - the response property `attachments/items/external_url` became nullable for the status `200`
  - the response property `attachments/items/message_id` became nullable for the status `200`
  - the response property `attachments/items/s3_key` became nullable for the status `200`
  - the response property `attachments/items/signed_url` became nullable for the status `200`
  - the response property `attachments/items/signed_url_expires_at` became nullable for the status `200`
  - the response property `attachments/items/thumbnail_url` became nullable for the status `200`
  - the response property `attachments/items/uploaded_at` became nullable for the status `200`
  - the response property `attachments/items/url` became nullable for the status `200`
  - the response property `content` became nullable for the status `200`
  - the response property `deleted_at` became nullable for the status `200`
  - the response property `edited_at` became nullable for the status `200`
  - the response property `forwarded_from/anyOf[#/components/schemas/ForwardedFromMessage]/content` became nullable for the status `200`
  - the response property `forwarded_from/anyOf[#/components/schemas/ForwardedFromMessage]/deleted_at` became nullable for the status `200`
  - the response property `forwarded_from/anyOf[#/components/schemas/ForwardedFromMessage]/user/anyOf[#/components/schemas/PublicUser]/bio` became nullable for the status `200`
  - the response property `forwarded_from/anyOf[#/components/schemas/ForwardedFromMessage]/user/anyOf[#/components/schemas/PublicUser]/clan/anyOf[subschema #1]/banner_url` became nullable for the status `200`
  - the response property `forwarded_from/anyOf[#/components/schemas/ForwardedFromMessage]/user/anyOf[#/components/schemas/PublicUser]/clan/anyOf[subschema #1]/chat_room_id` became nullable for the status `200`
  - the response property `forwarded_from/anyOf[#/components/schemas/ForwardedFromMessage]/user/anyOf[#/components/schemas/PublicUser]/clan/anyOf[subschema #1]/description` became nullable for the status `200`
  - the response property `forwarded_from/anyOf[#/components/schemas/ForwardedFromMessage]/user/anyOf[#/components/schemas/PublicUser]/clan/anyOf[subschema #1]/image_url` became nullable for the status `200`
  - the response property `forwarded_from/anyOf[#/components/schemas/ForwardedFromMessage]/user/anyOf[#/components/schemas/PublicUser]/clan_fee_rebate_rate` became nullable for the status `200`
  - the response property `forwarded_from/anyOf[#/components/schemas/ForwardedFromMessage]/user/anyOf[#/components/schemas/PublicUser]/clan_id` became nullable for the status `200`
  - the response property `forwarded_from/anyOf[#/components/schemas/ForwardedFromMessage]/user/anyOf[#/components/schemas/PublicUser]/deleted_at` became nullable for the status `200`
  - the response property `forwarded_from/anyOf[#/components/schemas/ForwardedFromMessage]/user/anyOf[#/components/schemas/PublicUser]/fee_rebate_override_rate` became nullable for the status `200`
  - the response property `forwarded_from/anyOf[#/components/schemas/ForwardedFromMessage]/user/anyOf[#/components/schemas/PublicUser]/fee_rebate_rate` became nullable for the status `200`
  - the response property `forwarded_from/anyOf[#/components/schemas/ForwardedFromMessage]/user/anyOf[#/components/schemas/PublicUser]/invite_code_id` became nullable for the status `200`
  - the response property `forwarded_from/anyOf[#/components/schemas/ForwardedFromMessage]/user/anyOf[#/components/schemas/PublicUser]/last_online` became nullable for the status `200`
  - the response property `forwarded_from/anyOf[#/components/schemas/ForwardedFromMessage]/user/anyOf[#/components/schemas/PublicUser]/last_online_mobile` became nullable for the status `200`
  - the response property `forwarded_from/anyOf[#/components/schemas/ForwardedFromMessage]/user/anyOf[#/components/schemas/PublicUser]/last_reset_at` became nullable for the status `200`
  - the response property `forwarded_from/anyOf[#/components/schemas/ForwardedFromMessage]/user/anyOf[#/components/schemas/PublicUser]/main_signer_quorum_id` became nullable for the status `200`
  - the response property `forwarded_from/anyOf[#/components/schemas/ForwardedFromMessage]/user/anyOf[#/components/schemas/PublicUser]/max_market_order_slippage` became nullable for the status `200`
  - the response property `forwarded_from/anyOf[#/components/schemas/ForwardedFromMessage]/user/anyOf[#/components/schemas/PublicUser]/referral_code` became nullable for the status `200`
  - the response property `forwarded_from/anyOf[#/components/schemas/ForwardedFromMessage]/user/anyOf[#/components/schemas/PublicUser]/referral_code_alt` became nullable for the status `200`
  - the response property `forwarded_from/anyOf[#/components/schemas/ForwardedFromMessage]/user/anyOf[#/components/schemas/PublicUser]/referred_by_id` became nullable for the status `200`
  - the response property `forwarded_from/anyOf[#/components/schemas/ForwardedFromMessage]/user/anyOf[#/components/schemas/PublicUser]/telegram_id` became nullable for the status `200`
  - the response property `forwarded_from/anyOf[#/components/schemas/ForwardedFromMessage]/user/anyOf[#/components/schemas/PublicUser]/wallet_address` became nullable for the status `200`
  - the response property `forwarded_from/anyOf[#/components/schemas/ForwardedFromMessage]/user/anyOf[#/components/schemas/PublicUser]/wallets/items/signer_quorum_id` became nullable for the status `200`
  - the response property `forwarded_from/anyOf[#/components/schemas/ForwardedFromMessage]/user/anyOf[#/components/schemas/PublicUser]/x_username` became nullable for the status `200`
  - the response property `forwarded_from_id` became nullable for the status `200`
  - the response property `link_preview/anyOf[#/components/schemas/LinkPreview]/description` became nullable for the status `200`
  - …557 more
- **2026-10-23** `c32e4c511ac5`: 1 info
  - added the optional property `reactions/items/users/items/reacted_at` to the response with the `200` status
- **2026-10-15** `c3b07d60c348`: 1 breaking, 12 info
  - the `quoted_post/anyOf[#/components/schemas/BasePost]/type` response's property type changed from `string` to no type for status `200`
  - added `#/components/schemas/ChatMessagePlatform` to the `platform` response property `anyOf` list for the response status `200`
  - added `subschema #1, subschema #2` to the `quoted_post/anyOf[#/components/schemas/BasePost]/type` response property `anyOf` list for the response status `200`
  - removed `subschema #1` from the `platform` response property `anyOf` list for the response status `200`
  - removed the `chart_note` enum value from the `quoted_post/anyOf[#/components/schemas/BasePost]/type` response property for the response status `200`
  - removed the `copy_trade` enum value from the `quoted_post/anyOf[#/components/schemas/BasePost]/type` response property for the response status `200`
  - removed the `position_added` enum value from the `quoted_post/anyOf[#/components/schemas/BasePost]/type` response property for the response status `200`
  - removed the `position_closed` enum value from the `quoted_post/anyOf[#/components/schemas/BasePost]/type` response property for the response status `200`
  - removed the `position_flipped` enum value from the `quoted_post/anyOf[#/components/schemas/BasePost]/type` response property for the response status `200`
  - removed the `position_opened` enum value from the `quoted_post/anyOf[#/components/schemas/BasePost]/type` response property for the response status `200`
  - removed the `position_reduced` enum value from the `quoted_post/anyOf[#/components/schemas/BasePost]/type` response property for the response status `200`
  - removed the `recap` enum value from the `quoted_post/anyOf[#/components/schemas/BasePost]/type` response property for the response status `200`
  - removed the `standalone` enum value from the `quoted_post/anyOf[#/components/schemas/BasePost]/type` response property for the response status `200`
- **2026-10-12** `e2cc50ac0860`: 1 info
  - added the optional property `command_execution` to the response with the `200` status
- **2026-10-07** `440fd2d98e59`: 11 info
  - added the optional property `forwarded_from/anyOf[#/components/schemas/ForwardedFromMessage]/user/anyOf[#/components/schemas/PublicUser]/callerActions` to the response with the `200` status
  - added the optional property `mentioned_users/items/callerActions` to the response with the `200` status
  - added the optional property `pinned_by/anyOf[#/components/schemas/PublicUser]/callerActions` to the response with the `200` status
  - added the optional property `quoted_post/anyOf[#/components/schemas/BasePost]/callerCopyProfileId` to the response with the `200` status
  - added the optional property `quoted_post/anyOf[#/components/schemas/BasePost]/copiedUser/anyOf[#/components/schemas/PublicUser]/callerActions` to the response with the `200` status
  - added the optional property `quoted_post/anyOf[#/components/schemas/BasePost]/copiers/items/callerActions` to the response with the `200` status
  - added the optional property `quoted_post/anyOf[#/components/schemas/BasePost]/mentioned_users/items/callerActions` to the response with the `200` status
  - added the optional property `quoted_post/anyOf[#/components/schemas/BasePost]/user/callerActions` to the response with the `200` status
  - added the optional property `reply_to/anyOf[#/components/schemas/ReplyToMessage]/mentioned_users/items/callerActions` to the response with the `200` status
  - added the optional property `reply_to/anyOf[#/components/schemas/ReplyToMessage]/user/anyOf[#/components/schemas/PublicUser]/callerActions` to the response with the `200` status
  - added the optional property `user/anyOf[#/components/schemas/PublicUser]/callerActions` to the response with the `200` status
- **2026-10-04** `ec3c2c8d9c62`: 2 info
  - added the new optional request property `expectedUserId`
  - added the optional property `realtimeCursor` to the response with the `200` status
- **2026-09-27** `cc5ceda89fac`: 1 warning
  - the `content/anyOf[subschema #1]/` request property's maxLength was set to `4000`
- **2026-09-10** `4201e72dc54f`: 2 info
  - added the optional property `link_preview/anyOf[#/components/schemas/LinkPreview]/imageRole` to the response with the `200` status
  - added the optional property `quoted_post/anyOf[#/components/schemas/BasePost]/link_preview/anyOf[#/components/schemas/LinkPreview]/imageRole` to the response with the `200` status
- **2026-09-08** `fae004332dd6`: 2 info
  - added the optional property `reactions/items/users/items/avatar_url` to the response with the `200` status
  - added the optional property `reactions/items/users/items/display_name` to the response with the `200` status
- **2026-09-02** `9d78f6feb4e7`: 1 info
  - added the optional property `quoted_post/anyOf[#/components/schemas/BasePost]/recap_content/anyOf[#/components/schemas/RecapContent]/searchEntryPointHtml` to the response with the `200` status
- **2026-09-01** `bd81b4235627`: 3 info
  - added the new optional request property `replySnapshotMessageId`
  - added the optional property `reply_to/anyOf[#/components/schemas/ReplyToMessage]/is_cross_room` to the response with the `200` status
  - added the optional property `reply_to/anyOf[#/components/schemas/ReplyToMessage]/source_room` to the response with the `200` status
- **2026-08-28** `792ac9f54322`: 1 info
  - added the optional property `quoted_post/anyOf[#/components/schemas/BasePost]/recap_content/anyOf[#/components/schemas/RecapContent]/translations` to the response with the `200` status
- **2026-08-25** `f91fbc22fde3`: 21 info
  - added the optional property `platform` to the response with the `200` status
  - added the required property `forwarded_from/anyOf[#/components/schemas/ForwardedFromMessage]/user/anyOf[#/components/schemas/PublicUser]/clan_fee_rebate_rate` to the response with the `200` status
  - added the required property `forwarded_from/anyOf[#/components/schemas/ForwardedFromMessage]/user/anyOf[#/components/schemas/PublicUser]/fee_rebate_override_rate` to the response with the `200` status
  - added the required property `mentioned_users/items/clan_fee_rebate_rate` to the response with the `200` status
  - added the required property `mentioned_users/items/fee_rebate_override_rate` to the response with the `200` status
  - added the required property `pinned_by/anyOf[#/components/schemas/PublicUser]/clan_fee_rebate_rate` to the response with the `200` status
  - added the required property `pinned_by/anyOf[#/components/schemas/PublicUser]/fee_rebate_override_rate` to the response with the `200` status
  - added the required property `quoted_post/anyOf[#/components/schemas/BasePost]/copiedUser/anyOf[#/components/schemas/PublicUser]/clan_fee_rebate_rate` to the response with the `200` status
  - added the required property `quoted_post/anyOf[#/components/schemas/BasePost]/copiedUser/anyOf[#/components/schemas/PublicUser]/fee_rebate_override_rate` to the response with the `200` status
  - added the required property `quoted_post/anyOf[#/components/schemas/BasePost]/copiers/items/clan_fee_rebate_rate` to the response with the `200` status
  - added the required property `quoted_post/anyOf[#/components/schemas/BasePost]/copiers/items/fee_rebate_override_rate` to the response with the `200` status
  - added the required property `quoted_post/anyOf[#/components/schemas/BasePost]/mentioned_users/items/clan_fee_rebate_rate` to the response with the `200` status
  - added the required property `quoted_post/anyOf[#/components/schemas/BasePost]/mentioned_users/items/fee_rebate_override_rate` to the response with the `200` status
  - added the required property `quoted_post/anyOf[#/components/schemas/BasePost]/user/clan_fee_rebate_rate` to the response with the `200` status
  - added the required property `quoted_post/anyOf[#/components/schemas/BasePost]/user/fee_rebate_override_rate` to the response with the `200` status
  - added the required property `reply_to/anyOf[#/components/schemas/ReplyToMessage]/mentioned_users/items/clan_fee_rebate_rate` to the response with the `200` status
  - added the required property `reply_to/anyOf[#/components/schemas/ReplyToMessage]/mentioned_users/items/fee_rebate_override_rate` to the response with the `200` status
  - added the required property `reply_to/anyOf[#/components/schemas/ReplyToMessage]/user/anyOf[#/components/schemas/PublicUser]/clan_fee_rebate_rate` to the response with the `200` status
  - added the required property `reply_to/anyOf[#/components/schemas/ReplyToMessage]/user/anyOf[#/components/schemas/PublicUser]/fee_rebate_override_rate` to the response with the `200` status
  - added the required property `user/anyOf[#/components/schemas/PublicUser]/clan_fee_rebate_rate` to the response with the `200` status
  - added the required property `user/anyOf[#/components/schemas/PublicUser]/fee_rebate_override_rate` to the response with the `200` status
- **2026-08-21** `9651975196e7`: 2 info
  - added the optional property `link_preview/anyOf[#/components/schemas/LinkPreview]/isPlayable` to the response with the `200` status
  - added the optional property `quoted_post/anyOf[#/components/schemas/BasePost]/link_preview/anyOf[#/components/schemas/LinkPreview]/isPlayable` to the response with the `200` status
- **2026-08-16** `522e926825a5`: 3 info
  - added the optional property `mentioned_clans` to the response with the `200` status
  - added the optional property `quoted_post/anyOf[#/components/schemas/BasePost]/mentioned_clans` to the response with the `200` status
  - added the optional property `reply_to/anyOf[#/components/schemas/ReplyToMessage]/mentioned_clans` to the response with the `200` status
- **2026-08-05** `c5a5175474ef`: 1 info
  - added the optional property `reply_to/anyOf[#/components/schemas/ReplyToMessage]/mentioned_users` to the response with the `200` status

---

[Operation](https://skmtc.dev/legend/apis/legend-api/docs/v1/chat/messages/post.md) - [API](https://skmtc.dev/legend/apis/legend-api.md) - [Page](https://skmtc.dev/legend/apis/legend-api/changes/v1/chat/messages/post)
