Skip to main content
This page is checked against @amityco/ts-sdk package metadata and the TypeScript SDK source changelog in AmityTypescriptSDK/CHANGELOG.md.
New ReleasesImprovements

🚀 New Features

Comment Approval for Communities

A community can now require review before a new comment is visible. While a comment is pending, only its author, the community’s reviewers, and network admins can see it. It stays out of public comment lists and comment counts until a reviewer approves it. See Comment Review.
  • Turn it on: set needApprovalOnCommentCreation when you create or update the community.
  • Approval status: comment.approvalStatus is pending, approved, or rejected.
  • Create without a local copy: CommentRepository.createComment(bundle, false) skips the local comment, so the comment you get back carries the server’s approval status. The default, true, keeps today’s behavior.
  • Review queue: CommentRepository.getCommentReviewQueue returns the community’s pending comments. Narrow it to one post or a date range.
  • Approve or decline: CommentRepository.approveComment and declineComment. Declining deletes the comment. The optional reason (at most 250 characters) is kept for the moderation record only.
  • Permission: reviewers need ReviewCommunityCommentPermission.
  • Editing while pending: Client.getSocialSettings() returns isAllowEditCommentWhenReviewingEnabled, which tells you whether an author may edit a pending comment.
  • Realtime: an approved comment appears as soon as it is approved, through the comment.approved event. Subscribe with CommentRepository.onCommentApproved. A declined comment arrives as a deletion.

Curated Content

Fetch the posts selected for a topic configured in the Console, and build your own discovery surface around them. A pool is one bounded, ranked result with no pagination, and the SDK keeps the server’s order. See Topic-based Content Discovery.
  • Fetch a pool: CuratedContentRepository.getPool(topicId, limit?) returns a promise of the pool: the topic plus its ranked posts. limit must be between 1 and 100.
  • Analytics: topic.analytics provides markAsViewed(), markPostAsViewed(postId), and markPostClick(postId).

Pin Message in Live Channels

Pin one message in a live channel so it stays visible above the chat. Pinning a new message replaces the current pin. The server clears the pin when the message is deleted or its author is banned from the channel or globally. See Pin and Unpin Messages.
  • Pin and unpin: MessageRepository.pinMessage and unpinMessage.
  • Read the pin: channel.pinnedMessage holds the current pinned message, or null when nothing is pinned.
  • Permission: PinMessagePermission. Channel moderators, and livestream hosts and co-hosts, have it by default.
  • Realtime: ChannelRepository.getChannel emits on every pin and unpin, driven by the channel.messagePinned and channel.messageUnpinned events. ChannelRepository.onChannelMessagePinned and onChannelMessageUnpinned are also available as separate callbacks.

Local Event on Channel Creation

createChannel now fires a local channel.created event right after a successful create. A newly created channel appears immediately in a running ChannelRepository.getChannels query, instead of waiting for its first message.

✨ Improvements

  • Added post.getLocalCommentCount(includePending). By default, the count leaves out the current user’s own comments that are still awaiting approval. Pass true to include them. post.localCommentCount is now deprecated and equals getLocalCommentCount(true).

🐞 Bug Fixes

  • Fixed a member’s channel role change (channel.roleAdded / channel.roleRemoved) not updating ChannelRepository.getChannel, which could leave a stale pin permission.
  • Fixed a globally banned user’s session staying active when the realtime ban event was missed. The next API call now terminates the session and notifies onClientBanned.
  • Fixed a deleted message’s text lingering in the channel list preview when the preview setting excludes deleted messages.
  • Fixed message.creator.avatar always resolving to undefined even though the type declared it.

🧩 Compatibility

Improvements

🐞 Bug Fixes

  • Fixed a crash from an unhandled MQTT CONNACK timeout error arriving on a connection that had already been discarded.

🧩 Compatibility

New ReleasesImprovements

🚀 New Features

v4 Sessions

Migrated loginWithAccessToken to v4 sessions.

Skip Token Renewal for Banned Users

Token renewal is now skipped for globally banned users.

🐞 Bug Fixes

  • No longer builds a cache key from an id the payload left null.
  • Capped the MQTT v5 session expiry at 1800s.
  • Typed the video file metadata.

🧩 Compatibility

Improvements

✨ Improvements

  • Maintenance release published as part of the 28 August coordinated release. No new functional changes since 7.25.0.

🧩 Compatibility

New ReleasesImprovements

🚀 New Features

Report User with Reason

Added the ability to report a user with a reason.

✨ Improvements

  • Upgraded the MQTT client to protocol v5.

🐞 Bug Fixes

  • Added an excludeOwnEvents query parameter to event queries.
  • Fixed the message preview not updating in real time on edit.
  • Added actorUserId to co-host data.

🧩 Compatibility

Improvements

🐞 Bug Fixes

  • Fixed the liveChatEnabled field type on the room (live) object.
  • Fixed the community avatar not resolving for stories.

🧩 Compatibility

New Releases

🚀 New Features

For You Feed

Added a personalized For You feed. New APIs let you fetch the recommended feed and read its network-level setting, and the feed reports a “caught up” state once the user has seen all available recommendations.

Notification Settings

Added APIs to read and update user notification settings.

Chat Settings API

Added a chat settings API for configuring channel and messaging behavior.

Channel Search Live Collection

Added a live collection for searching channels, so search results stay in sync as data changes.

Enhanced User Blocking

A new API to list all users blocking the current user, a public auto-subscription enum, and a dedicated error code emitted when the maximum number of blocked users is reached.Updated the getShareableLinkConfiguration schema.

🧩 Compatibility

New Releases

🚀 New Features

Visitor Daily Usage Limit

Added detection for the visitor daily read quota (100 req/day, error code 400323 — ServerError.VISITOR_USAGE_LIMIT_EXCEEDED). The SDK detects this error in the Axios response interceptor and emits an visitorUsageLimitReached event. Subscribe via onVisitorUsageLimitReached(callback).

🧩 Compatibility

New Releases

🚀 New Features

Optimistic Comment Creation

  • Added optimistic comment creation support — comments now appear instantly in the UI before server confirmation, improving perceived performance.

🧩 Compatibility

Improvements

✨ Improvements

  • Improved MQTT connection retry mechanism for better real-time messaging stability.

🧩 Compatibility

Improvements

🐞 Bug Fixes

  • Fixed incorrect unread count increment for live channels, which caused getTotalUnreadCount to return inaccurate results.
  • Fixed incorrect local commentsCount increment.

🧩 Compatibility

New Releases

🚀 New Features

Get All Blocked Users

Introduce getAllBlockedUsers() on UserRepository — returns the full list of blocked users (up to 100) as a non-paginated, one-shot Promise<Amity.User[]> with a 5-minute TTL cache.

Excluding Roles in Community Member Queries

Add excludingRoles parameter to getMembers() and searchMembers() query params. Members holding any of the specified roles are excluded from the live collection result.

🧩 Compatibility

New Releases

🚀 New Features

Live Thumbnail and Resolution in AmityRoom

Add liveThumbnailUrl, liveResolution, and recordedResolution fields to AmityRoom to expose server-generated thumbnail and stream resolution data.Add link detection support to comment create/update APIs, enabling automatic link parsing in comment text.

Root Comment and Latest Comment ID in Query

Add rootId and latestCommentId fields to the comment query API for improved comment threading and navigation.

Page Size for Get Comments

Add pageSize parameter to getComments API for more granular control over comment pagination.

🐞 Bug Fixes

  • Fixed posts going missing after paging REFRESH.

🧩 Compatibility

New Releases

🚀 New Features

Product Tagging in Posts

Introduce product tagging support in posts — tag products in post text via @ trigger and per-media. Includes product search and create/update post with product tags.

Livestream Product Tagging

Introduce product management in livestream(Room) post — tag, pin, and remove products across broadcast phases.

🧩 Compatibility

New Releases

🚀 New Features

Introduced a new searchBy param in searchUsersByDisplayName API providing additional search options.

🧩 Compatibility

New Releases

🚀 New Features

Authentication

Introduce an ability to login with a pre-fetched accessToken.

Comment Count

Introduce a local calculated comment count based on incoming real-time events.

Community Post Query by Tags

Introduce an ability to community posts with matching tags.

🧩 Compatibility

New Releases

🚀 New Features

Livestream Analytics

Introduce AmityRoomAnalytics for the purpose of tracking watch minute

Session Termination Reason

Introduce reason when client goes into termianted state

🧩 Compatibility

New Releases

🚀 New Features

Livestream Post With Room

Introduce Room service, an upgrade and a replacement forstream

Event Scheduling

Introduce Event service, enabling event scheduling

🧩 Compatibility

New Releases

🚀 New Features

Mixed Attachments Post

  • Support mixed structure post where a post can contains multiple datatypes such as image, video, file, and audio.

Audio Content Support

  • Support audio file upload.
  • Introduce audio dataType for post.

🧩 Compatibility

New Releases

🚀 New Features

Public Access

  • Added loginAsVisitor() function, enables user to interact as a visitor.
  • Added loginAsBot() function, enables SEO bot to crawl through public data.

🧩 Compatibility

New Releases

🚀 New Features

Child stream

  • Support child stream creation where a child stream can be linked to a parent stream.

Poll

  • Added unvotePoll() function, enables user to update poll answer.

Preview members

  • Added getPreviewMembers() on AmityChannel, enables access upto 4 members of converation and community channel.

🧩 Compatibility