> ## Documentation Index
> Fetch the complete documentation index at: https://cometchat-22654f5b-docs-agent-native-development.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# API Reference

> Complete reference of all Blueprint nodes, structs, enums, and delegates in the CometChat Unreal SDK.

This page is a single-stop reference for every public API surface in the CometChat Unreal SDK plugin.

***

## Subsystem Methods

These are called directly on `UCometChatSubsystem`.

| Method | Category | Parameters | Returns | Description |
| - | - | - | - | - |
| `Configure` | Config | `AppId: FString`, `Region: FString` | `void` | Initialize the SDK with your CometChat credentials. Must be called before Login. |
| `ConfigureWithSettings` | Config | `AppId: FString`, `Settings: FCometChatAppSettings` | `void` | Initialize with advanced settings (custom hosts, subscription type, manual connection). |
| `IsLoggedIn` | Auth | — | `bool` | Returns `true` if a user is currently authenticated. |
| `GetLoggedInUser` | Auth | — | `FCometChatUser` | Returns the currently logged-in user's profile. |
| `GetConnectionStatus` | Connection | — | `ECometChatConnectionState` | Returns the current WebSocket connection state. |
| `StartTyping` | Typing | `Indicator: FCometChatTypingIndicator` | `void` | Notify that the local user started typing. |
| `EndTyping` | Typing | `Indicator: FCometChatTypingIndicator` | `void` | Notify that the local user stopped typing. |
| `SendTransientMessage` | Messaging | `Message: FCometChatTransientMessage` | `void` | Send an ephemeral message that is not persisted. |
| `Shutdown` | Lifecycle | — | `void` | Tear down the SDK and release all resources. |

***

## Async Action Nodes

Each node is a latent Blueprint action with **On Success** and **On Failure** output pins. In C++, create via the static factory method, bind delegates, and call `Activate()`.

### Authentication

| Node | Parameters | Success Output | Description |
| - | - | - | - |
| **Login Async** | `Uid: FString`, `AuthKey: FString` | — | Authenticate a user with Auth Key. |
| **Login With Auth Token Async** | `AuthToken: FString` | — | Authenticate a user with a pre-generated Auth Token. |
| **Logout Async** | — | — | Log out the current user and disconnect. |

### Messaging

| Node | Parameters | Success Output | Description |
| - | - | - | - |
| **Send Message Async** | `ReceiverUid: FString`, `Text: FString` | `FCometChatMessage` | Send a 1:1 text message. |
| **Send Group Message Async** | `Guid: FString`, `Text: FString` | `FCometChatMessage` | Send a text message to a group. |
| **Get Messages Async** | `Uid: FString`, `Limit: int32` | `TArray<FCometChatMessage>` | Fetch message history for a 1:1 conversation. |
| **Get Group Messages Async** | `Guid: FString`, `Limit: int32`, `BeforeMessageId: int32` | `TArray<FCometChatMessage>`, `FCometChatPagination` | Fetch paginated message history for a group. |
| **Fetch Messages Async** | `Request: FCometChatMessagesRequest` | `TArray<FCometChatMessage>` | Fetch messages with full filter/pagination control. |

### Users

| Node | Parameters | Success Output | Description |
| - | - | - | - |
| **Get User Async** | `Uid: FString` | `FCometChatUser` | Fetch a user's profile. |
| **Fetch Users Async** | `Request: FCometChatUsersRequest` | `TArray<FCometChatUser>` | Fetch users with search, filters, and pagination. |

### Groups

| Node | Parameters | Success Output | Description |
| - | - | - | - |
| **Create Group Async** | `Name: FString`, `MemberIds: TArray<FString>` | `FCometChatGroup` | Create a new group with initial members. |
| **Join Group Async** | `Guid: FString` | — | Join an existing group. |
| **Leave Group Async** | `Guid: FString` | — | Leave a group. |
| **Fetch Groups Async** | `Request: FCometChatGroupsRequest` | `TArray<FCometChatGroup>` | Fetch groups with search, filters, and pagination. |

### Conversations

| Node | Parameters | Success Output | Description |
| - | - | - | - |
| **Fetch Conversations Async** | `Request: FCometChatConversationsRequest` | `TArray<FCometChatConversation>` | Fetch conversations with filters and pagination. |

### Connection

| Node | Parameters | Success Output | Description |
| - | - | - | - |
| **Connect Async** | — | — | Manually establish the WebSocket connection. |
| **Disconnect Async** | — | — | Manually close the WebSocket connection. |
| **Ping Async** | — | — | Ping the server to verify connectivity. |

### Moderation

| Node | Parameters | Success Output | Description |
| - | - | - | - |
| **Flag Message Async** | `MessageId: FString`, `FlagDetail: FCometChatFlagDetail` | — | Flag a message for moderation. |
| **Get Flag Reasons Async** | — | `TArray<FCometChatFlagReason>` | Fetch available flag/report reasons. |

***

## Real-Time Delegates

All delegates are `UPROPERTY(BlueprintAssignable)` on `UCometChatSubsystem`. They fire on the **Game Thread**.

### MessageListener

| Delegate | Payload Type | Fires When |
| - | - | - |
| `OnTextMessageReceived` | `FCometChatMessage` | Text message arrives |
| `OnMediaMessageReceived` | `FCometChatMessage` | Media message arrives |
| `OnCustomMessageReceived` | `FCometChatMessage` | Custom message arrives |
| `OnInteractiveMessageReceived` | `FCometChatMessage` | Interactive message arrives |
| `OnInteractionGoalCompleted` | `FCometChatInteractionReceipt` | Interaction goal completed |
| `OnTypingStarted` | `FCometChatTypingIndicator` | User starts typing |
| `OnTypingEnded` | `FCometChatTypingIndicator` | User stops typing |
| `OnMessagesDelivered` | `FCometChatMessageReceipt` | Messages delivered |
| `OnMessagesRead` | `FCometChatMessageReceipt` | Messages read |
| `OnMessagesDeliveredToAll` | `FCometChatMessageReceipt` | Messages delivered to all |
| `OnMessagesReadByAll` | `FCometChatMessageReceipt` | Messages read by all |
| `OnMessageEdited` | `FCometChatMessage` | Message edited |
| `OnMessageDeleted` | `FCometChatMessage` | Message deleted |
| `OnTransientMessageReceived` | `FCometChatTransientMessage` | Transient message arrives |
| `OnMessageReactionAdded` | `FCometChatReactionEvent` | Reaction added |
| `OnMessageReactionRemoved` | `FCometChatReactionEvent` | Reaction removed |
| `OnMessageModerated` | `FCometChatMessage` | Message moderation status changes |
| `OnAIAssistantMessageReceived` | `FCometChatMessage` | AI assistant message |
| `OnAIToolResultReceived` | `FCometChatMessage` | AI tool result |
| `OnAIToolArgumentsReceived` | `FCometChatMessage` | AI tool arguments |

### UserListener

| Delegate | Payload Type | Fires When |
| - | - | - |
| `OnUserOnline` | `FCometChatUser` | User comes online |
| `OnUserOffline` | `FCometChatUser` | User goes offline |

### GroupListener

| Delegate | Payload Type | Fires When |
| - | - | - |
| `OnGroupMemberJoined` | `FCometChatAction, FCometChatUser, FCometChatGroup` | Member joins |
| `OnGroupMemberLeft` | `FCometChatAction, FCometChatUser, FCometChatGroup` | Member leaves |
| `OnGroupMemberKicked` | `FCometChatAction, FCometChatUser, FCometChatUser, FCometChatGroup` | Member kicked |
| `OnGroupMemberBanned` | `FCometChatAction, FCometChatUser, FCometChatUser, FCometChatGroup` | Member banned |
| `OnGroupMemberUnbanned` | `FCometChatAction, FCometChatUser, FCometChatUser, FCometChatGroup` | Member unbanned |
| `OnGroupMemberScopeChanged` | `FCometChatScopeChangeEvent` | Member scope changed |
| `OnMemberAddedToGroup` | `FCometChatAction, FCometChatUser, FCometChatUser, FCometChatGroup` | Member added |

### ConnectionListener

| Delegate | Payload Type | Fires When |
| - | - | - |
| `OnConnected` | — | WebSocket connected |
| `OnConnecting` | — | Attempting to connect |
| `OnDisconnected` | — | WebSocket disconnected |
| `OnFeatureThrottled` | — | Feature rate-limited |
| `OnConnectionError` | `FCometChatError` | Connection error |

### LoginListener

| Delegate | Payload Type | Fires When |
| - | - | - |
| `OnLoginSuccess` | `FCometChatUser` | Login succeeds |
| `OnLoginFailure` | `FCometChatError` | Login fails |
| `OnLogoutSuccess` | — | Logout succeeds |
| `OnLogoutFailure` | `FCometChatError` | Logout fails |

### AIAssistantListener

| Delegate | Payload Type | Fires When |
| - | - | - |
| `OnAIAssistantEvent` | `FCometChatAIAssistantEvent` | AI assistant event |

***

## Structs

### FCometChatUser

| Property | Type | Description |
| - | - | - |
| `Uid` | `FString` | Unique user identifier |
| `Name` | `FString` | Display name |
| `AvatarUrl` | `FString` | URL to avatar image |
| `Status` | `FString` | Current status text |
| `Role` | `FString` | User role |
| `Metadata` | `FString` | Custom metadata JSON |
| `Link` | `FString` | Profile link |
| `StatusMessage` | `FString` | Status message |
| `LastActiveAt` | `int64` | Unix timestamp of last activity |
| `bHasBlockedMe` | `bool` | Whether this user has blocked the logged-in user |
| `bBlockedByMe` | `bool` | Whether the logged-in user has blocked this user |
| `Tags` | `TArray<FString>` | User tags |
| `DeactivatedAt` | `int64` | Unix timestamp of deactivation (0 if active) |

### FCometChatMessage

| Property | Type | Description |
| - | - | - |
| `Id` | `FString` | Unique message identifier |
| `Muid` | `FString` | Client-generated unique ID |
| `SenderUid` | `FString` | UID of the sender |
| `ReceiverUid` | `FString` | UID of the receiver (user or group) |
| `Text` | `FString` | Message body |
| `SentAt` | `int64` | Unix timestamp when sent |
| `Type` | `FString` | `text`, `image`, `video`, `audio`, `file`, `custom` |
| `Category` | `FString` | `message`, `action`, `call`, `custom` |
| `ReceiverType` | `FString` | `user` or `group` |
| `ConversationId` | `FString` | Conversation identifier |
| `SenderName` | `FString` | Sender's display name |
| `SenderAvatar` | `FString` | Sender's avatar URL |
| `UpdatedAt` | `int64` | Unix timestamp of last update |
| `Metadata` | `FString` | Custom metadata JSON |
| `DeliveredAt` | `int64` | Delivery timestamp |
| `ReadAt` | `int64` | Read timestamp |
| `DeletedAt` | `int64` | Deletion timestamp |
| `EditedAt` | `int64` | Edit timestamp |
| `DeletedBy` | `FString` | UID of user who deleted |
| `EditedBy` | `FString` | UID of user who edited |
| `ParentMessageId` | `int64` | Parent message ID (for threads) |
| `ReplyCount` | `int32` | Number of replies |
| `UnreadRepliesCount` | `int32` | Number of unread replies |
| `MentionedUsers` | `TArray<FCometChatUser>` | Users mentioned in this message |
| `bHasMentionedMe` | `bool` | Whether the logged-in user is mentioned |
| `Reactions` | `TArray<FCometChatReactionCount>` | Reaction counts |
| `Attachment` | `FCometChatAttachment` | File attachment (if media message) |
| `Caption` | `FString` | Media caption |
| `CustomData` | `FString` | Custom data JSON |
| `SubType` | `FString` | Message sub-type |
| `Tags` | `TArray<FString>` | Message tags |
| `ModerationStatus` | `ECometChatModerationStatus` | Moderation status |

### FCometChatGroup

| Property | Type | Description |
| - | - | - |
| `Guid` | `FString` | Unique group identifier |
| `Name` | `FString` | Group display name |
| `Description` | `FString` | Group description |
| `Type` | `FString` | `public`, `private`, or `password` |
| `Icon` | `FString` | Group icon URL |
| `Owner` | `FString` | UID of the group owner |
| `Metadata` | `FString` | Custom metadata JSON |
| `CreatedAt` | `int64` | Creation timestamp |
| `UpdatedAt` | `int64` | Last update timestamp |
| `bHasJoined` | `bool` | Whether the logged-in user has joined |
| `JoinedAt` | `int64` | When the logged-in user joined |
| `Scope` | `FString` | Logged-in user's scope (`admin`, `moderator`, `participant`) |
| `MembersCount` | `int32` | Number of members |
| `Tags` | `TArray<FString>` | Group tags |
| `bIsBannedFromGroup` | `bool` | Whether the logged-in user is banned |

### FCometChatConversation

| Property | Type | Description |
| - | - | - |
| `ConversationId` | `FString` | Unique conversation identifier |
| `ConversationType` | `FString` | `user` or `group` |
| `LastMessage` | `FCometChatMessage` | Most recent message |
| `ConversationWithUser` | `FCometChatUser` | The other user (if 1:1) |
| `ConversationWithGroup` | `FCometChatGroup` | The group (if group conversation) |
| `UnreadMessageCount` | `int32` | Number of unread messages |
| `UpdatedAt` | `int64` | Last update timestamp |
| `Tags` | `TArray<FString>` | Conversation tags |
| `UnreadMentionsCount` | `int32` | Number of unread mentions |
| `LastReadMessageId` | `int64` | ID of last read message |
| `LatestMessageId` | `int64` | ID of latest message |

### FCometChatTransientMessage

| Property | Type | Description |
| - | - | - |
| `ReceiverId` | `FString` | Receiver UID or GUID |
| `ReceiverType` | `FString` | `user` or `group` |
| `Data` | `FString` | Custom data payload (JSON) |
| `Sender` | `FCometChatUser` | The sender |

### FCometChatMessageReceipt

| Property | Type | Description |
| - | - | - |
| `MessageId` | `FString` | The message this receipt is for |
| `Sender` | `FCometChatUser` | User who triggered the receipt |
| `ReceiverType` | `FString` | `user` or `group` |
| `ReceiverId` | `FString` | Receiver UID or GUID |
| `Timestamp` | `int64` | Receipt timestamp |
| `ReceiptType` | `FString` | `delivered` or `read` |
| `DeliveredAt` | `int64` | Delivery timestamp |
| `ReadAt` | `int64` | Read timestamp |

### FCometChatTypingIndicator

| Property | Type | Description |
| - | - | - |
| `ReceiverId` | `FString` | Receiver UID or GUID |
| `ReceiverType` | `FString` | `user` or `group` |
| `Metadata` | `FString` | Optional metadata JSON |
| `Sender` | `FCometChatUser` | The user who is typing |

### FCometChatReactionEvent

| Property | Type | Description |
| - | - | - |
| `Reaction` | `FString` | The reaction emoji/string |
| `ReceiverId` | `FString` | Receiver UID or GUID |
| `ReceiverType` | `FString` | `user` or `group` |
| `ConversationId` | `FString` | Conversation identifier |
| `ParentMessageId` | `int64` | Parent message ID |
| `Message` | `FCometChatMessage` | The message that was reacted to |

### FCometChatReactionCount

| Property | Type | Description |
| - | - | - |
| `Reaction` | `FString` | The reaction emoji/string |
| `Count` | `int32` | Number of times this reaction was used |
| `bReactedByMe` | `bool` | Whether the logged-in user reacted |

### FCometChatAttachment

| Property | Type | Description |
| - | - | - |
| `Extension` | `FString` | File extension |
| `MimeType` | `FString` | MIME type |
| `Name` | `FString` | File name |
| `Size` | `int64` | File size in bytes |
| `Url` | `FString` | Download URL |

### FCometChatAction

| Property | Type | Description |
| - | - | - |
| `BaseMessage` | `FCometChatMessage` | Underlying message |
| `Action` | `FString` | Action type |
| `ActionBy` | `FCometChatUser` | User who performed the action |
| `ActionOn` | `FCometChatUser` | User the action was performed on |
| `ActionFor` | `FString` | Target identifier |
| `OldScope` | `FString` | Previous scope (for scope changes) |
| `NewScope` | `FString` | New scope (for scope changes) |

### FCometChatGroupMember

| Property | Type | Description |
| - | - | - |
| `User` | `FCometChatUser` | The member's user profile |
| `Scope` | `FString` | Member scope (`admin`, `moderator`, `participant`) |
| `JoinedAt` | `int64` | When the member joined |

### FCometChatScopeChangeEvent

| Property | Type | Description |
| - | - | - |
| `Action` | `FCometChatAction` | The action details |
| `UpdatedBy` | `FCometChatUser` | User who changed the scope |
| `UpdatedUser` | `FCometChatUser` | User whose scope was changed |
| `ScopeChangedTo` | `FString` | New scope value |
| `ScopeChangedFrom` | `FString` | Previous scope value |
| `Group` | `FCometChatGroup` | The group where scope changed |

### FCometChatInteractionReceipt

| Property | Type | Description |
| - | - | - |
| `MessageId` | `FString` | Message ID |
| `Sender` | `FCometChatUser` | User who interacted |
| `ReceiverType` | `FString` | `user` or `group` |
| `ReceiverId` | `FString` | Receiver UID or GUID |
| `ElementId` | `FString` | Interactive element ID |
| `InteractedAt` | `int64` | Interaction timestamp |

### FCometChatFlagDetail

| Property | Type | Description |
| - | - | - |
| `ReasonId` | `FString` | ID of the flag reason |
| `Remark` | `FString` | Optional remark from the reporter |

### FCometChatFlagReason

| Property | Type | Description |
| - | - | - |
| `Id` | `FString` | Unique reason identifier |
| `Name` | `FString` | Display name |
| `Description` | `FString` | Detailed description |
| `CreatedAt` | `int64` | Creation timestamp |
| `UpdatedAt` | `int64` | Last update timestamp |

### FCometChatAIAssistantEvent

| Property | Type | Description |
| - | - | - |
| `EventType` | `FString` | Type of AI event |
| `Data` | `FString` | Event data payload |
| `ConversationId` | `FString` | Conversation identifier |
| `SenderUid` | `FString` | Sender UID |

### FCometChatError

| Property | Type | Description |
| - | - | - |
| `Code` | `FString` | Error code |
| `Message` | `FString` | Human-readable error message |
| `Details` | `FString` | Additional error details |

### FCometChatAppSettings

| Property | Type | Description |
| - | - | - |
| `Region` | `FString` | App region (`us` or `eu`) |
| `SubscriptionType` | `FString` | Subscription type for presence |
| `Roles` | `TArray<FString>` | Roles for presence subscription |
| `AdminHost` | `FString` | Custom admin host URL |
| `ClientHost` | `FString` | Custom client host URL |
| `bAutoEstablishSocketConnection` | `bool` | Auto-connect WebSocket on login (default: `true`) |

### FCometChatPagination

| Property | Type | Description |
| - | - | - |
| `Total` | `int32` | Total items available |
| `Count` | `int32` | Items returned in this page |
| `PerPage` | `int32` | Page size requested |
| `CurrentPage` | `int32` | Current page number |
| `TotalPages` | `int32` | Total pages available |
| `HasMore` | `bool` | Whether more pages exist |
| `NextCursor` | `int32` | Cursor for next page |

***

## Request Builder Structs

### FCometChatUsersRequest

| Property | Type | Default | Description |
| - | - | - | - |
| `Limit` | `int32` | `30` | Max results per page |
| `SearchKeyword` | `FString` | — | Search by name/UID |
| `SearchIn` | `TArray<FString>` | — | Fields to search in |
| `UserStatus` | `FString` | — | Filter by status (`online`, `offline`) |
| `bHideBlockedUsers` | `bool` | `false` | Exclude blocked users |
| `bFriendsOnly` | `bool` | `false` | Only show friends |
| `Roles` | `TArray<FString>` | — | Filter by roles |
| `Tags` | `TArray<FString>` | — | Filter by tags |
| `bWithTags` | `bool` | `false` | Include tags in response |
| `UIDs` | `TArray<FString>` | — | Fetch specific UIDs |
| `SortBy` | `FString` | — | Sort field |
| `SortOrder` | `FString` | — | `asc` or `desc` |
| `Page` | `int32` | `0` | Page number |

### FCometChatGroupsRequest

| Property | Type | Default | Description |
| - | - | - | - |
| `Limit` | `int32` | `30` | Max results per page |
| `SearchKeyword` | `FString` | — | Search by group name |
| `bJoinedOnly` | `bool` | `false` | Only groups the user has joined |
| `Tags` | `TArray<FString>` | — | Filter by tags |
| `bWithTags` | `bool` | `false` | Include tags in response |
| `Page` | `int32` | `0` | Page number |

### FCometChatMessagesRequest

| Property | Type | Default | Description |
| - | - | - | - |
| `Limit` | `int32` | `30` | Max results per page |
| `UID` | `FString` | — | Fetch messages for this user (1:1) |
| `GUID` | `FString` | — | Fetch messages for this group |
| `MessageId` | `int64` | `-1` | Fetch messages before this ID |
| `Timestamp` | `int64` | `-1` | Fetch messages before this timestamp |
| `bUnread` | `bool` | `false` | Only unread messages |
| `bHideMessagesFromBlockedUsers` | `bool` | `false` | Hide blocked user messages |
| `SearchKeyword` | `FString` | — | Search message text |
| `Categories` | `TArray<FString>` | — | Filter by categories |
| `Types` | `TArray<FString>` | — | Filter by types |
| `ParentMessageId` | `int64` | `-1` | Fetch thread replies |
| `bHideReplies` | `bool` | `false` | Hide thread replies |
| `bHideDeleted` | `bool` | `false` | Hide deleted messages |
| `Tags` | `TArray<FString>` | — | Filter by tags |
| `bWithTags` | `bool` | `false` | Include tags in response |

### FCometChatConversationsRequest

| Property | Type | Default | Description |
| - | - | - | - |
| `Limit` | `int32` | `30` | Max results per page |
| `ConversationType` | `FString` | — | `user` or `group` |
| `bWithUserAndGroupTags` | `bool` | `false` | Include user/group tags |
| `Tags` | `TArray<FString>` | — | Filter by conversation tags |
| `bWithTags` | `bool` | `false` | Include tags in response |
| `UserTags` | `TArray<FString>` | — | Filter by user tags |
| `GroupTags` | `TArray<FString>` | — | Filter by group tags |
| `bIncludeBlockedUsers` | `bool` | `false` | Include blocked users |
| `SearchKeyword` | `FString` | — | Search conversations |
| `bUnread` | `bool` | `false` | Only unread conversations |
| `Page` | `int32` | `0` | Page number |

### FCometChatGroupMembersRequest

| Property | Type | Default | Description |
| - | - | - | - |
| `GUID` | `FString` | — | Group to fetch members for |
| `Limit` | `int32` | `30` | Max results per page |
| `SearchKeyword` | `FString` | — | Search by member name |
| `Scopes` | `TArray<FString>` | — | Filter by scope |
| `Status` | `FString` | — | Filter by status |
| `Page` | `int32` | `0` | Page number |

### FCometChatBannedMembersRequest

| Property | Type | Default | Description |
| - | - | - | - |
| `GUID` | `FString` | — | Group to fetch banned members for |
| `Limit` | `int32` | `30` | Max results per page |
| `SearchKeyword` | `FString` | — | Search by name |
| `Scopes` | `TArray<FString>` | — | Filter by scope |
| `Page` | `int32` | `0` | Page number |

### FCometChatBlockedUsersRequest

| Property | Type | Default | Description |
| - | - | - | - |
| `Limit` | `int32` | `30` | Max results per page |
| `SearchKeyword` | `FString` | — | Search by name |
| `Direction` | `FString` | — | `blockedByMe` or `hasBlockedMe` |
| `Page` | `int32` | `0` | Page number |

### FCometChatReactionsRequest

| Property | Type | Default | Description |
| - | - | - | - |
| `Limit` | `int32` | `10` | Max results per page |
| `MessageId` | `int64` | `-1` | Message to fetch reactions for |
| `Reaction` | `FString` | — | Filter by specific reaction |

***

## Enums

### ECometChatConnectionState

| Value | Description |
| - | - |
| `Connected` | WebSocket is active |
| `Connecting` | SDK is attempting to connect |
| `Disconnected` | WebSocket is closed |
| `FeatureThrottled` | A feature is being rate-limited |

### ECometChatPresenceStatus

| Value | Description |
| - | - |
| `Online` | User is currently active |
| `Offline` | User is not connected |
| `Away` | User is connected but idle |

### ECometChatModerationStatus

| Value | Description |
| - | - |
| `Unmoderated` | Message has not been moderated |
| `Pending` | Message is pending moderation review |
| `Approved` | Message has been approved |
| `Disapproved` | Message has been rejected |

***

## C++ Header Includes

When working in C++, here are the headers you'll need:

```cpp theme={null}
// Subsystem (always needed — includes all struct/enum definitions)
#include "CometChatSubsystem.h"

// Async action nodes (include as needed)
#include "AsyncActions/CometChatLoginAction.h"
#include "AsyncActions/CometChatLoginWithAuthTokenAction.h"
#include "AsyncActions/CometChatLogoutAction.h"
#include "AsyncActions/CometChatSendMessageAction.h"
#include "AsyncActions/CometChatSendGroupMessageAction.h"
#include "AsyncActions/CometChatGetMessagesAction.h"
#include "AsyncActions/CometChatGetGroupMessagesAction.h"
#include "AsyncActions/CometChatGetUserAction.h"
#include "AsyncActions/CometChatCreateGroupAction.h"
#include "AsyncActions/CometChatJoinGroupAction.h"
#include "AsyncActions/CometChatLeaveGroupAction.h"
#include "AsyncActions/CometChatFetchUsersAction.h"
#include "AsyncActions/CometChatFetchGroupsAction.h"
#include "AsyncActions/CometChatFetchConversationsAction.h"
#include "AsyncActions/CometChatFetchMessagesAction.h"
#include "AsyncActions/CometChatConnectAction.h"
#include "AsyncActions/CometChatDisconnectAction.h"
#include "AsyncActions/CometChatPingAction.h"
#include "AsyncActions/CometChatFlagMessageAction.h"
#include "AsyncActions/CometChatGetFlagReasonsAction.h"
```

All types (`FCometChatUser`, `FCometChatMessage`, `FCometChatGroup`, etc.) are defined in `CometChatSubsystem.h`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.