vercel-cometchat-adaptor library simplifies message and event t
-1. Configure the AI settings through the CometChat dashboard as detailed in the [Overview section](/ai-chatbots/overview).
+1. Configure the AI settings through the CometChat dashboard as detailed in the [Overview section](/ai-chatbots/ai-bots/overview).
2. Navigate to AI Bots section and add a new bot by clicking on the **"+"** button.
3. Enter bot details like `UID`, `Avatar`, `Bot name` and assign a `Instruction` from the dropdown. Then "Enable" the bot.
4. These details can be edited by clicking on the three dots. Similarly, you can also delete a bot.
diff --git a/ai-chatbots/ai-bots/instructions.mdx b/ai-chatbots/ai-bots/instructions.mdx
index ef1148586..5311d6130 100644
--- a/ai-chatbots/ai-bots/instructions.mdx
+++ b/ai-chatbots/ai-bots/instructions.mdx
@@ -1,5 +1,6 @@
---
title: "AI Instructions"
+description: "AI Instructions — CometChat documentation."
---
CometChat AI Instructions can be linked to a bot to confer specific characteristics upon it.
diff --git a/ai-chatbots/ai-bots/overview.mdx b/ai-chatbots/ai-bots/overview.mdx
index 552654f59..6c7513b51 100644
--- a/ai-chatbots/ai-bots/overview.mdx
+++ b/ai-chatbots/ai-bots/overview.mdx
@@ -1,11 +1,16 @@
---
title: "Overview"
+description: "Overview of Overview in CometChat."
---
## AI-Enabled Messaging Experience
For users seeking guidance or insights from automated assistants, the **AI Bots** and **Ask Bot** features are designed to maintain conversational momentum.
+
@@ -115,5 +116,5 @@ Once all the steps are done you'll be able to see that your app is migrated to v
1. Go to the dashboard and make a migration request for your application(s)
2. [Make any required platform-specific code changes](/articles/migration-guide#migrating-your-platform)
- 3. [Make the API changes (Applicable if you are using CometChat Rest APIs)](https://api-explorer.cometchat.com/reference/create-apikey)
+ 3. [Make the API changes (Applicable if you are using CometChat Rest APIs)](/rest-api/chat-apis)
4. Mark the migration process as complete in the dashboard
diff --git a/articles/properties-and-constraints.mdx b/articles/properties-and-constraints.mdx
index 5cf74c756..326bc0e5e 100644
--- a/articles/properties-and-constraints.mdx
+++ b/articles/properties-and-constraints.mdx
@@ -1,99 +1,74 @@
---
-title: "Properties And Constraints"
+title: "Properties and Constraints"
+description: "Properties and Constraints — CometChat documentation."
---
-This page lists the properties and limits which are applicable to various CometChat systems.
-
-## **Chat widgets:** **Properties and Constraints**
-
-| **Item** | **Property or Constraint** | **Notes** |
-| ------------------------------------------------ | ------------------------------------------ | ----------------------------- |
-| Number of Widgets that can be created for an app | Maximum 25 | |
-| Widget name | UTF8mb4, 100 chars, No new line characters | |
-| Widget version | v2 | Cannot be set programatically |
-| Docked layout icon | Docked layout icon: PNG,JPG,GIF,SVG | |
-
-## **Webhooks: Properties** **and Constraints**
-
-| **Item** | **Property or Constraint** | **Notes** |
-| ------------------------------------ | --------------------------------------------------------- | --------- |
-| Maximum number of webhooks in an app | Maximum 25 | |
-| Webhook URL | Valid URL, maximum 255 characters | |
-| Webhook ID | 50 characters, UTF8mb4 set, alphanumeric (without spaces) | |
-| Webhook authentication username | 50 characters, alphanumeric (without spaces) | |
-| Webhook authentication password | 100 characters, alphanumeric (without spaces) | |
-
-## **Management APIs:** **Properties and Constraints**
-
-| Item | Property or Constraint | Notes |
-| ------------------------------------------------------------- | --------------------------- | --------------------------------- |
-| App length | 100 characters, UTF8mb4 set | |
-| App version | v3 | This is the only option available |
-| Number of Collaborators that can be created (team management) | Maximum 25 | |
-
-**REST APIs:** **Properties** **and Constraints**
-
-Also see REST API documentation for further information on properties and constraints for each endpoint.
-
-| **Item** | **Property or Constraint** | **Notes** |
-| -------------------------------------------------- | ----------------------------------- | ------------------------------------------------------------------------------- |
-| Number of Bot users that can be created | Maximum 25 | |
-| API Keys | 100 characters (UTF8mb4 Characters) | This covers all the languages and even emojis. (One emoji uses two characters). |
-| Number of APIs keys that can be created for an app | Maximum 25 | |
-
-## **Users and Groups:** **Properties and Constraints**
-
-| **Item** | **Property or Constraint** | **Notes** |
-| ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ |
-| Character limits for UIDs and GUIDs | 100 characters | |
-| Maximum users in a group (v3) | 100000 | |
-| Maximum groups a user can be a part of | No limits | |
-| Maximum number of friends for a user | No limits | |
-| Maximum tokens for a user | No limits | |
-| Maximum number of groups | No limits | |
-| Maximum number of unread messages per user | No limits | |
-| Maximum number of users that can be created for an app | No limits | |
-| User and Group ID | 100 characters, alpha-dash (a-z, 0-9 with -and \_) without spaces . | CometChat forces the UID to all lowercase. |
-| User and Group name | 100 characters, UTF8mb4 set | This covers all the languages and even emojis. |
-| User and Group avatar | Must be a URL, limit of 3000 characters | CometChat doesn’t save the image on its servers.. There is no limit on the image resolution. It depends on the implementation. |
-| User profile | Must be a URL, limit of 3000 characters | Same as above |
-| User and Group metadata | The API limit for the POST request length is 10 KB. Hence, the user’s metadata information must fit in the same limit and must not exceed 1.6 KB. | |
-| User and Group tag | A user can have up to 25 tags with 100 characters per tag. The tags can be in any language. The character set must be UTF8mb4 | |
-| Group password | String up to 100 characters | |
-| Group description | 255 characters, UTF8mb4 set | |
-| Maximum active presence subscriptions | The presence subscription will be active until 1000 users are online for a single app. if more than 1000 users go online, the presence notification starting from the 1001st user will not be sent to other users. | Note, this is the higher limit applicable across subscription for friends, users with certain roles and all users |
-| Typing indicators for groups | Typing indicator will be sent for a group of up to 1000 online users. | |
-| Unread message counts for groups | For a group with more than 300 members, the conversations and unread message counts are not updated. | |
-| Delivery and read receipts for groups | Delivery and read receipts will be sent for for a group of up to 300 online users. | |
-
-## **Roles: Properties and Constraints**
-
-| **Item** | **Property or Constraint** | **Notes** |
-| ------------------------------------------- | ----------------------------------------------------------------- | ---------------------------------------------- |
-| Maximum number of Roles that can be created | Maximum 25 | |
-| Role UID | 100 characters, alpha-dash (a-z, 0-9 with -and \_) without spaces | CometChat forces the UID to lowercase. |
-| Role name | 100 characters, UTF8mb4 | This covers all the languages and even emojis. |
-| Role description | 255 characters, UTF8mb4 set, any language. | |
-| Metadata | No limit | |
-
-## **Messages: Properties and Constraints**
-
-| **Item** | **Property or Constraint** | **Notes** |
-| -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------- |
-| Maximum file attachment size | 100 MB per message | (Includes not just the file size but entire POST body (including chat text and custom data) |
-| Message data (Applicable for API calls) | Data is an arbitrary JSON structure. It accepts utf8mb4. It can have any user defined properties. but the below properties have meaning for CometChat: text, attachments, custome\_data, metadata. Note: The attachment size is separate. Here, the attachment is only the attachment properties (such as URL, size, etc.). The size must not exceed 10KB for the data object. | |
-| Message tags | A message can have up to 25 tags with 100 characters per tag. The tags can be in any language. The character set must be UTF8mb4. | |
-| User and Group conversation tags | A conversation can have up to 25 tags with 100 characters per tag. The tags can be in any language. The character set must be UTF8mb4. | |
-| Does CometChat keep soft deleted messages in its database? | Yes | |
-| Does CometChat keep permanently deleted messages (by API) in its database? | No | |
-
-## **Calling: Properties and Constraints**
-
-| **Item** | **Property or Constraint** | **Notes** |
-| ---------------------------------- | ------------------------------ | --------------------------------------------------------------------------------- |
-| Maximum users in a call | 50 | |
-| Default frame rate for video calls | 30 FPS | |
-| Resolution for video calls | Maximum - 720p, Minimum - 180p | This depends on the layout selected and the bandwidth available at the user’s end |
-| Media encryption used | SRTP | |
-| Audio codec used | OPUS | |
-| Video codec used | H.264 | |
+This page lists the properties and constraints applicable to various CometChat systems.
+
+## API Keys
+
+| **Property** | **Constraints** |
+| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| API key value | System-generated, 40-character hexadecimal string |
+| API key name | Max 100 characters, UTF8mb4 (supports all languages and emojis; one emoji = 2 characters) |
+| API key scope | `authOnly` — can only create auth tokens for users. Referred to as "Auth Key" in the dashboard and docs. `fullAccess` — can perform all REST API operations (create/update/delete users, groups, messages, etc.). Referred to as "REST API Key" in the dashboard and docs. |
+| Maximum API keys per app | 25 |
+
+## Users and Groups
+
+| **Property** | **Constraints** |
+| ------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Maximum members per group (all features enabled) | 300 (with delivery/read receipts and typing indicators) |
+| Maximum members per group (without receipts and typing indicators) | 100,000 |
+| Maximum groups per user | 2,000 |
+| Maximum friends per user | 1,000 |
+| Maximum auth tokens per user | 100 active (rolling retention — oldest tokens archived when limit exceeded) |
+| Maximum groups per app | No limit |
+| Maximum unread messages per user | No limit |
+| Maximum users per app | No limit |
+| Maximum bot users per app | 25 |
+| User/Group ID (`uid`, `guid`) | Max 100 characters, alpha-dash (`a-z`, `0-9`, `-`, `_`), no spaces. Automatically lowercased. |
+| User/Group name | Max 100 characters, UTF8mb4 (supports all languages and emojis) |
+| User/Group avatar | Must be a valid URL, max 3,000 characters. Image is not stored by CometChat — URL must remain accessible. |
+| User profile link | Must be a valid URL, max 3,000 characters |
+| User/Group metadata | Max 5 KB (within the 10 KB POST request body limit) |
+| User/Group tags | Max 25 tags, each up to 100 characters, UTF8mb4 |
+| Group password | Max 100 characters |
+| Group description | Max 255 characters, UTF8mb4 |
+| Presence subscriptions | Active for up to 1,000 concurrent online users per app. Beyond 1,000, presence notifications are not sent. Applies across friends, role-based, and all-user subscriptions. |
+| Typing indicators (groups) | Sent for groups with up to 1,000 online members |
+| Unread message counts (groups) | Not updated for groups with more than 300 members |
+| Delivery/read receipts (groups) | Sent for groups with up to 300 online members |
+
+## Roles
+
+| **Property** | **Constraints** |
+| --------------------- | --------------------------------------------------------------------------------------------- |
+| Maximum roles per app | 25 |
+| Role ID | Max 100 characters, alpha-dash (`a-z`, `0-9`, `-`, `_`), no spaces. Automatically lowercased. |
+| Role name | Max 100 characters, UTF8mb4 (supports all languages and emojis) |
+| Role description | Max 255 characters, UTF8mb4 |
+| Role metadata | No limit |
+
+## Messages
+
+| **Property** | **Constraints** |
+| ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Maximum file upload size | 100 MB per message (includes file + entire POST body) |
+| Maximum message size (including metadata) | 65,536 characters (~65 KB). Applies to the message JSON payload, not file uploads. |
+| Message `data` object | Arbitrary JSON, UTF8mb4. Reserved keys: `text`, `attachments`, `custom_data`, `metadata`. Max 10 KB for the `data` object. Attachment file size is counted separately. |
+| Message tags | Max 25 tags, each up to 100 characters, UTF8mb4 |
+| Conversation tags | Max 25 tags, each up to 100 characters, UTF8mb4 |
+| Soft-deleted messages retained | Yes |
+| Permanently deleted messages (via API) retained | No |
+
+## Calling
+
+| **Property** | **Constraints** |
+| ------------------------ | -------------------------------------------------------- |
+| Maximum users per call | 50 |
+| Default video frame rate | 30 FPS |
+| Video resolution | Min 180p, max 720p (varies by layout and user bandwidth) |
+| Media encryption | SRTP |
+| Audio codec | OPUS |
+| Video codec | H.264 |
diff --git a/articles/rate-limits.mdx b/articles/rate-limits.mdx
index bb48f297f..1db40e2b1 100644
--- a/articles/rate-limits.mdx
+++ b/articles/rate-limits.mdx
@@ -1,5 +1,6 @@
---
title: "Rate Limits"
+description: "Rate Limits — CometChat documentation."
---
### CometChat REST API Rate Limits
diff --git a/assets/version-aligner.css b/assets/version-aligner.css
index 6b65525cb..5e4b62e05 100644
--- a/assets/version-aligner.css
+++ b/assets/version-aligner.css
@@ -108,4 +108,18 @@ html.cc-version-aligned #sidebar-content [data-version-aligner-button] {
:not(pre)>code {
padding: .125rem 0rem;
-}
\ No newline at end of file
+}
+
+/* Fix font size inconsistency in API endpoint descriptions */
+/* Only applies to API reference pages */
+#content-area #header .mt-2.text-lg p {
+ font-size: 0.875rem !important;
+ line-height: 1.375rem !important;
+}
+
+/* Fix deprecated badge wrapping in sidebar */
+#sidebar-content div.w-\[78px\].h-\[21px\] {
+ width: auto !important;
+ white-space: nowrap !important;
+ padding: 2px 6px !important;
+}
diff --git a/calls.json b/calls.json
index 1429664ef..aae3b52f7 100644
--- a/calls.json
+++ b/calls.json
@@ -1,675 +1,588 @@
{
- "openapi": "3.0.0",
- "info": {
- "title": "Calls APIs",
- "description": "Manage calls using our API.",
- "version": "3.0"
- },
- "servers": [
- {
- "url": "https://{appid}.call-{region}.cometchat.io/v3",
- "variables": {
- "appid": {
- "default": "appId",
- "description": "(Required) App ID"
- },
- "region": {
- "enum": [
- "us",
- "eu",
- "in"
- ],
- "default": "us",
- "description": "Select Region"
- }
- }
+ "openapi": "3.1.0",
+ "info": {
+ "title": "calls-api",
+ "version": "3"
+ },
+ "servers": [
+ {
+ "url": "https://{appId}.call-{region}.cometchat.io/v3.0",
+ "variables": {
+ "appId": {
+ "default": "appId"
+ },
+ "region": {
+ "default": "region"
}
- ],
- "paths": {
- "/calls": {
- "get": {
- "tags": [
- "Calls"
- ],
- "summary": "List Calls",
- "description": "Retrieves all call logs for an app. The response may include participants and recordings details when available.",
- "operationId": "list-calls",
- "parameters": [
- {
- "$ref": "#/components/parameters/onBehalfOf"
- },
- {
- "name": "type",
- "in": "query",
- "description": "Filter by call type. Values: voice, video.",
- "schema": {
+ }
+ }
+ ],
+ "components": {
+ "securitySchemes": {
+ "sec0": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "apikey"
+ }
+ }
+ },
+ "security": [
+ {
+ "sec0": []
+ }
+ ],
+ "paths": {
+ "/calls": {
+ "get": {
+ "summary": "List Calls",
+ "description": "lists all the calls that are available in the app. It can include participants, and recordings property in the response (if present).",
+ "operationId": "list-calls",
+ "parameters": [
+ {
+ "name": "type",
+ "in": "query",
+ "description": "It includes the type of the call, possible values: audio & video",
+ "schema": {
+ "type": "string",
+ "enum": [
+ "audio",
+ "video"
+ ],
+ "description": "Allowed values: audio, video"
+ }
+ },
+ {
+ "name": "mode",
+ "in": "query",
+ "description": "It represents the mode of call, possible values: call, meet & presenter.",
+ "schema": {
+ "type": "string",
+ "enum": [
+ "call",
+ "meet",
+ "presenter"
+ ],
+ "description": "Allowed values: call, meet, presenter"
+ }
+ },
+ {
+ "name": "participantsCount",
+ "in": "query",
+ "description": "This query parameter allows you to filter the list of calls based on the number of participants involved in each call. For example, participantsCount=5 will return calls that had exactly 5 participants.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "startedAt",
+ "in": "query",
+ "description": "It represents when the call was started. It's 10 digit unix timestamp.",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "status",
+ "in": "query",
+ "description": "It indicates the status of the call. Possible values are initiated, ongoing, ended, unanswered, rejected, canceled.",
+ "schema": {
+ "type": "string",
+ "enum": [
+ "initiated",
+ "ongoing",
+ "ended",
+ "unanswered",
+ "rejected",
+ "canceled"
+ ],
+ "description": "Allowed values: initiated, ongoing, ended, unanswered, rejected, canceled"
+ }
+ },
+ {
+ "name": "receiverType",
+ "in": "query",
+ "description": "It indicates if it was 1-1 call of group call. Possible values: user & group.",
+ "schema": {
+ "type": "string",
+ "enum": [
+ "user",
+ "group"
+ ],
+ "description": "Allowed values: user, group"
+ }
+ },
+ {
+ "name": "endedAt",
+ "in": "query",
+ "description": "It represents when the call was ended.",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "hasRecording",
+ "in": "query",
+ "description": "It's a boolean field indicating if the call has recording present or not.",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "name": "uid",
+ "in": "query",
+ "description": "It fetches only those calls in which the passed uid is a part of.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "onBehalfOf",
+ "in": "header",
+ "description": "UID of the user on whose behalf the action is performed.",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "200",
+ "content": {
+ "application/json": {
+ "examples": {
+ "Result": {
+ "value": "{\n \"data\": [\n {\n \"sessionId\": \"v1.us.31780434a95d45.1692368168aefba73a1e5938ad7a02f8e61ea1c9a287a08aeb\",\n \"totalAudioMinutes\": 0.31666666666666665,\n \"totalVideoMinutes\": 0,\n \"totalDuration\": \"00:00:19\",\n \"hasRecording\": false,\n \"initiatedAt\": 1692368168,\n \"initiator\": \"cometchat-uid-8\",\n \"mode\": \"call\",\n \"receiver\": \"sivamathewstestgroup\",\n \"receiverType\": \"group\",\n \"status\": \"ended\",\n \"totalDurationInMinutes\": 0.31666666666666665,\n \"totalParticipants\": 2,\n \"type\": \"audio\",\n \"mid\": \"3f7596ac-854b-484d-b36c-d623e193bd81\",\n \"startedAt\": 1692368180,\n \"endedAt\": 1692368199,\n \"participants\": [\n {\n \"uid\": \"cometchat-uid-2\",\n \"totalAudioMinutes\": 0.31666666666666665,\n \"totalVideoMinutes\": 0,\n \"isJoined\": true,\n \"state\": \"ended\",\n \"totalDuration\": 0.31666666666666665,\n \"deviceId\": \"b7683aaf-090a-4204-8f84-7ddd652923aa@rtc.cometchat.com/ucTKf4eq\",\n \"joinedAt\": 1692368180,\n \"mid\": \"3f7596ac-854b-484d-b36c-d623e193bd81\",\n \"leftAt\": 1692368199\n },\n {\n \"uid\": \"cometchat-uid-8\",\n \"totalAudioMinutes\": 0.2833333333333333,\n \"totalVideoMinutes\": 0,\n \"isJoined\": true,\n \"state\": \"ended\",\n \"totalDuration\": 0.2833333333333333,\n \"deviceId\": \"f55d46e5-2b1c-4b02-9072-382209a8753f@rtc.cometchat.com/K-s6dB3N\",\n \"joinedAt\": 1692368180,\n \"mid\": \"3f7596ac-854b-484d-b36c-d623e193bd81\",\n \"leftAt\": 1692368197\n },\n {\n \"uid\": \"cometchat-uid-4\",\n \"totalAudioMinutes\": 0,\n \"totalVideoMinutes\": 0,\n \"isJoined\": false,\n \"state\": \"unanswered\",\n \"totalDuration\": 0\n },\n {\n \"uid\": \"cometchat-uid-7\",\n \"totalAudioMinutes\": 0,\n \"totalVideoMinutes\": 0,\n \"isJoined\": false,\n \"state\": \"unanswered\",\n \"totalDuration\": 0\n },\n {\n \"uid\": \"cometchat-uid-6\",\n \"totalAudioMinutes\": 0,\n \"totalVideoMinutes\": 0,\n \"isJoined\": false,\n \"state\": \"unanswered\",\n \"totalDuration\": 0\n }\n ]\n },\n {\n \"sessionId\": \"v1.us.31780434a95d45.16923681138d75114d60d1345a22e4cc612263fb26c0b5cf92\",\n \"totalAudioMinutes\": 0.31666666666666665,\n \"totalVideoMinutes\": 0,\n \"totalDuration\": \"00:00:19\",\n \"hasRecording\": false,\n \"initiatedAt\": 1692368113,\n \"initiator\": \"cometchat-uid-8\",\n \"mode\": \"call\",\n \"receiver\": \"cometchat-uid-2\",\n \"receiverType\": \"user\",\n \"status\": \"ended\",\n \"totalDurationInMinutes\": 0.31666666666666665,\n \"totalParticipants\": 2,\n \"type\": \"audio\",\n \"mid\": \"855e1519-1244-4213-8e40-53044c1e9e43\",\n \"startedAt\": 1692368127,\n \"endedAt\": 1692368146,\n \"participants\": [\n {\n \"uid\": \"cometchat-uid-8\",\n \"totalAudioMinutes\": 0.26666666666666666,\n \"totalVideoMinutes\": 0,\n \"totalDuration\": 0.26666666666666666,\n \"deviceId\": \"70ecae89-b71c-4bb3-8220-b7c99ec1658f@rtc.cometchat.com/hsYWb5ul\",\n \"isJoined\": true,\n \"joinedAt\": 1692368128,\n \"mid\": \"855e1519-1244-4213-8e40-53044c1e9e43\",\n \"state\": \"ended\",\n \"leftAt\": 1692368144\n },\n {\n \"uid\": \"cometchat-uid-2\",\n \"totalAudioMinutes\": 0.23333333333333334,\n \"totalVideoMinutes\": 0,\n \"totalDuration\": 0.23333333333333334,\n \"deviceId\": \"c9ed493e-8495-428d-b6ee-b32019cc57ce@rtc.cometchat.com/CKT3xgR4\",\n \"isJoined\": true,\n \"joinedAt\": 1692368132,\n \"mid\": \"855e1519-1244-4213-8e40-53044c1e9e43\",\n \"state\": \"ended\",\n \"leftAt\": 1692368146\n }\n ]\n }\n ],\n \"meta\": {\n \"pagination\": {\n \"total\": 2,\n \"count\": 2,\n \"total_pages\": 1,\n \"current_page\": 1\n }\n }\n}"
+ }
+ },
+ "schema": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "sessionId": {
"type": "string",
- "enum": [
- "voice",
- "video"
- ]
- }
- },
- {
- "name": "types",
- "in": "query",
- "description": "Filter calls by multiple types. Accepts comma-separated values or array notation. Values: voice, video.",
- "style": "form",
- "explode": false,
- "schema": {
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- },
- {
- "name": "mode",
- "in": "query",
- "description": "It represents the mode of call, possible values: call, meet & presenter.",
- "schema": {
+ "example": "v1.us.31780434a95d45.1692368168aefba73a1e5938ad7a02f8e61ea1c9a287a08aeb"
+ },
+ "totalAudioMinutes": {
+ "type": "number",
+ "example": 0.31666666666666665,
+ "default": 0
+ },
+ "totalVideoMinutes": {
+ "type": "integer",
+ "example": 0,
+ "default": 0
+ },
+ "totalDuration": {
"type": "string",
- "enum": [
- "call",
- "meet",
- "presenter"
- ]
- }
- },
- {
- "name": "participantsCount",
- "in": "query",
- "description": "This query parameter allows you to filter the list of calls based on the number of participants involved in each call. For example, participantsCount=5 will return calls that had exactly 5 participants.",
- "schema": {
- "type": "integer"
- }
- },
- {
- "name": "initiatedAt",
- "in": "query",
- "description": "Filter by call initiation time. Value is a 10-digit unix timestamp. Supports bracket notation operators: eq, gt, gte, lt, lte.\nFormat: initiatedAt[operator]=value.\nExample: initiatedAt[gte]=1692368168",
- "schema": {
- "type": "integer"
- }
- },
- {
- "name": "startedAt",
- "in": "query",
- "description": "Filter by call start time. Value is a 10-digit unix timestamp. Supports bracket notation operators: eq, gt, gte, lt, lte.\nFormat: startedAt[operator]=value.\nExample: startedAt[gte]=1692368180",
- "schema": {
- "type": "integer"
- }
- },
- {
- "name": "status",
- "in": "query",
- "description": "Filter by call status. Values: initiated, cancelled, unanswered, rejected, busy, ongoing, ended.",
- "schema": {
+ "example": "00:00:19"
+ },
+ "hasRecording": {
+ "type": "boolean",
+ "example": false,
+ "default": true
+ },
+ "initiatedAt": {
+ "type": "integer",
+ "example": 1692368168,
+ "default": 0
+ },
+ "initiator": {
"type": "string",
- "enum": [
- "initiated",
- "cancelled",
- "unanswered",
- "rejected",
- "busy",
- "ongoing",
- "ended"
- ]
- }
- },
- {
- "name": "statuses",
- "in": "query",
- "description": "Filter calls by multiple statuses. Accepts comma-separated values or array notation. Values: initiated, cancelled, unanswered, rejected, busy, ongoing, ended.",
- "style": "form",
- "explode": false,
- "schema": {
+ "example": "cometchat-uid-8"
+ },
+ "mode": {
+ "type": "string",
+ "example": "call"
+ },
+ "receiver": {
+ "type": "string",
+ "example": "sivamathewstestgroup"
+ },
+ "receiverType": {
+ "type": "string",
+ "example": "group"
+ },
+ "status": {
+ "type": "string",
+ "example": "ended"
+ },
+ "totalDurationInMinutes": {
+ "type": "number",
+ "example": 0.31666666666666665,
+ "default": 0
+ },
+ "totalParticipants": {
+ "type": "integer",
+ "example": 2,
+ "default": 0
+ },
+ "type": {
+ "type": "string",
+ "example": "audio"
+ },
+ "mid": {
+ "type": "string",
+ "example": "3f7596ac-854b-484d-b36c-d623e193bd81"
+ },
+ "startedAt": {
+ "type": "integer",
+ "example": 1692368180,
+ "default": 0
+ },
+ "endedAt": {
+ "type": "integer",
+ "example": 1692368199,
+ "default": 0
+ },
+ "participants": {
"type": "array",
"items": {
- "type": "string"
- }
- }
- },
- {
- "name": "receiverType",
- "in": "query",
- "description": "It indicates if it was 1-1 call of group call. Possible values: user & group.",
- "schema": {
- "type": "string",
- "enum": [
- "user",
- "group"
- ]
- }
- },
- {
- "name": "endedAt",
- "in": "query",
- "description": "Filter by call end time. Value is a 10-digit unix timestamp. Supports bracket notation operators: eq, gt, gte, lt, lte.\nFormat: endedAt[operator]=value.\nExample: endedAt[lte]=1692368199",
- "schema": {
- "type": "integer"
- }
- },
- {
- "name": "duration",
- "in": "query",
- "description": "Filter by total call duration in minutes (decimal). Supports bracket notation operators: eq, gt, gte, lt, lte.\nFormat: duration[operator]=value.\nExample: duration[gte]=1.5",
- "schema": {
- "type": "number"
- }
- },
- {
- "name": "totalParticipants",
- "in": "query",
- "description": "Filter by the number of participants in the call (integer). Supports bracket notation operators: eq, gt, gte, lt, lte.\nFormat: totalParticipants[operator]=value.\nExample: totalParticipants[gt]=2",
- "schema": {
- "type": "integer"
- }
- },
- {
- "name": "voiceMinutes",
- "in": "query",
- "description": "Filter by total audio minutes consumed in the call (decimal). Supports bracket notation operators: eq, gt, gte, lt, lte.\nFormat: voiceMinutes[operator]=value.\nExample: voiceMinutes[eq]=0.75",
- "schema": {
- "type": "number"
- }
- },
- {
- "name": "videoMinutes",
- "in": "query",
- "description": "Filter by total video minutes consumed in the call (decimal). Supports bracket notation operators: eq, gt, gte, lt, lte.\nFormat: videoMinutes[operator]=value.\nExample: videoMinutes[lte]=5",
- "schema": {
- "type": "number"
- }
- },
- {
- "name": "hasRecording",
- "in": "query",
- "description": "It's a boolean field indicating if the call has recording present or not.",
- "schema": {
- "type": "boolean"
- }
- },
- {
- "name": "uid",
- "in": "query",
- "description": "It fetches only those calls in which the passed uid is a part of.",
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Lists Calls",
- "content": {
- "application/json": {
- "schema": {
- "properties": {
- "data": {
- "type": "array",
- "items": {
- "properties": {
- "": {
- "$ref": "#/components/schemas/callSchema"
- }
- },
- "type": "object"
- }
- },
- "meta": {
- "properties": {
- "": {
- "$ref": "#/components/schemas/metaSchema"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
+ "type": "object",
+ "properties": {
+ "uid": {
+ "type": "string",
+ "example": "cometchat-uid-2"
},
- "example": {
- "data": [
- {
- "sessionId": "v1.us.31780434a95d45.1692368168aefba73a1e5938ad7a02f8e61ea1c9a287a08aeb",
- "totalAudioMinutes": 0.31666666666666665,
- "totalVideoMinutes": 0,
- "totalDuration": "00:00:19",
- "hasRecording": false,
- "initiatedAt": 1692368168,
- "initiator": "superhero8",
- "mode": "call",
- "receiver": "sivamathewstestgroup",
- "receiverType": "group",
- "status": "ended",
- "totalDurationInMinutes": 0.31666666666666665,
- "totalParticipants": 2,
- "type": "audio",
- "mid": "3f7596ac-854b-484d-b36c-d623e193bd81",
- "startedAt": 1692368180,
- "endedAt": 1692368199,
- "participants": [
- {
- "uid": "superhero2",
- "totalAudioMinutes": 0.31666666666666665,
- "totalVideoMinutes": 0,
- "isJoined": true,
- "state": "ended",
- "totalDuration": 0.31666666666666665,
- "deviceId": "b7683aaf-090a-4204-8f84-7ddd652923aa@rtc.cometchat-staging.com/ucTKf4eq",
- "joinedAt": 1692368180,
- "mid": "3f7596ac-854b-484d-b36c-d623e193bd81",
- "leftAt": 1692368199
- },
- {
- "uid": "superhero8",
- "totalAudioMinutes": 0.2833333333333333,
- "totalVideoMinutes": 0,
- "isJoined": true,
- "state": "ended",
- "totalDuration": 0.2833333333333333,
- "deviceId": "f55d46e5-2b1c-4b02-9072-382209a8753f@rtc.cometchat-staging.com/K-s6dB3N",
- "joinedAt": 1692368180,
- "mid": "3f7596ac-854b-484d-b36c-d623e193bd81",
- "leftAt": 1692368197
- },
- {
- "uid": "superhero4",
- "totalAudioMinutes": 0,
- "totalVideoMinutes": 0,
- "isJoined": false,
- "state": "unanswered",
- "totalDuration": 0
- },
- {
- "uid": "superhero7",
- "totalAudioMinutes": 0,
- "totalVideoMinutes": 0,
- "isJoined": false,
- "state": "unanswered",
- "totalDuration": 0
- },
- {
- "uid": "superhero6",
- "totalAudioMinutes": 0,
- "totalVideoMinutes": 0,
- "isJoined": false,
- "state": "unanswered",
- "totalDuration": 0
- }
- ]
- },
- {
- "sessionId": "v1.us.31780434a95d45.16923681138d75114d60d1345a22e4cc612263fb26c0b5cf92",
- "totalAudioMinutes": 0.31666666666666665,
- "totalVideoMinutes": 0,
- "totalDuration": "00:00:19",
- "hasRecording": false,
- "initiatedAt": 1692368113,
- "initiator": "superhero8",
- "mode": "call",
- "receiver": "superhero2",
- "receiverType": "user",
- "status": "ended",
- "totalDurationInMinutes": 0.31666666666666665,
- "totalParticipants": 2,
- "type": "audio",
- "mid": "855e1519-1244-4213-8e40-53044c1e9e43",
- "startedAt": 1692368127,
- "endedAt": 1692368146,
- "participants": [
- {
- "uid": "superhero8",
- "totalAudioMinutes": 0.26666666666666666,
- "totalVideoMinutes": 0,
- "totalDuration": 0.26666666666666666,
- "deviceId": "70ecae89-b71c-4bb3-8220-b7c99ec1658f@rtc.cometchat-staging.com/hsYWb5ul",
- "isJoined": true,
- "joinedAt": 1692368128,
- "mid": "855e1519-1244-4213-8e40-53044c1e9e43",
- "state": "ended",
- "leftAt": 1692368144
- },
- {
- "uid": "superhero2",
- "totalAudioMinutes": 0.23333333333333334,
- "totalVideoMinutes": 0,
- "totalDuration": 0.23333333333333334,
- "deviceId": "c9ed493e-8495-428d-b6ee-b32019cc57ce@rtc.cometchat-staging.com/CKT3xgR4",
- "isJoined": true,
- "joinedAt": 1692368132,
- "mid": "855e1519-1244-4213-8e40-53044c1e9e43",
- "state": "ended",
- "leftAt": 1692368146
- }
- ]
- }
- ],
- "meta": {
- "pagination": {
- "total": 2,
- "count": 2,
- "total_pages": 1,
- "current_page": 1
- }
- }
- }
- }
- }
- }
- },
- "security": [
- {
- "apiKey": []
- }
- ]
- }
- },
- "/calls/{sessionId}": {
- "get": {
- "tags": [
- "Calls"
- ],
- "summary": "Get Call",
- "description": "Fetches all the details of the call whose sessionId is passed in the URL.",
- "operationId": "retreive-call-details",
- "parameters": [
- {
- "$ref": "#/components/parameters/onBehalfOf"
- },
- {
- "name": "sessionId",
- "in": "path",
- "description": "Call to Retreive",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Rereives Call Details",
- "content": {
- "application/json": {
- "schema": {
- "properties": {
- "data": {
- "properties": {
- "": {
- "$ref": "#/components/schemas/callSchema"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
+ "totalAudioMinutes": {
+ "type": "number",
+ "example": 0.31666666666666665,
+ "default": 0
},
- "example": {
- "data": {
- "sessionId": "v1.us.31780434a95d45.16923681138d75114d60d1345a22e4cc612263fb26c0b5cf92",
- "totalAudioMinutes": 0.31666666666666665,
- "totalVideoMinutes": 0,
- "totalDuration": "00:00:19",
- "metaData": [],
- "hasRecording": false,
- "initiatedAt": 1692368113,
- "initiator": "superhero8",
- "mode": "call",
- "receiver": "superhero2",
- "receiverType": "user",
- "status": "ended",
- "tags": [],
- "totalDurationInMinutes": 0.31666666666666665,
- "totalParticipants": 2,
- "type": "audio",
- "mid": "855e1519-1244-4213-8e40-53044c1e9e43",
- "startedAt": 1692368127,
- "endedAt": 1692368146,
- "participants": [
- {
- "uid": "superhero2",
- "totalAudioMinutes": 0.23333333333333334,
- "totalVideoMinutes": 0,
- "totalDuration": 0.23333333333333334,
- "deviceId": "c9ed493e-8495-428d-b6ee-b32019cc57ce@rtc.cometchat-staging.com/CKT3xgR4",
- "isJoined": true,
- "joinedAt": 1692368132,
- "mid": "855e1519-1244-4213-8e40-53044c1e9e43",
- "state": "ended",
- "leftAt": 1692368146
- },
- {
- "uid": "superhero8",
- "totalAudioMinutes": 0.26666666666666666,
- "totalVideoMinutes": 0,
- "totalDuration": 0.26666666666666666,
- "deviceId": "70ecae89-b71c-4bb3-8220-b7c99ec1658f@rtc.cometchat-staging.com/hsYWb5ul",
- "isJoined": true,
- "joinedAt": 1692368128,
- "mid": "855e1519-1244-4213-8e40-53044c1e9e43",
- "state": "ended",
- "leftAt": 1692368144
- }
- ]
- }
+ "totalVideoMinutes": {
+ "type": "integer",
+ "example": 0,
+ "default": 0
+ },
+ "isJoined": {
+ "type": "boolean",
+ "example": true,
+ "default": true
+ },
+ "state": {
+ "type": "string",
+ "example": "ended"
+ },
+ "totalDuration": {
+ "type": "number",
+ "example": 0.31666666666666665,
+ "default": 0
+ },
+ "deviceId": {
+ "type": "string",
+ "example": "b7683aaf-090a-4204-8f84-7ddd652923aa@rtc.cometchat.com/ucTKf4eq"
+ },
+ "joinedAt": {
+ "type": "integer",
+ "example": 1692368180,
+ "default": 0
+ },
+ "mid": {
+ "type": "string",
+ "example": "3f7596ac-854b-484d-b36c-d623e193bd81"
+ },
+ "leftAt": {
+ "type": "integer",
+ "example": 1692368199,
+ "default": 0
}
+ }
}
+ }
}
- }
- },
- "security": [
- {
- "apiKey": []
- }
- ]
- }
- }
- },
- "components": {
- "schemas": {
- "callSchema": {
- "description": "Response data",
- "properties": {
- "sessionId": {
- "type": "string"
- },
- "totalAudioMinutes": {
- "type": "integer"
- },
- "totalVideoMinutes": {
- "type": "integer"
- },
- "totalDuration": {
- "type": "integer"
- },
- "hasRecording": {
- "type": "boolean"
- },
- "initiatedAt": {
- "type": "integer"
- },
- "initiator": {
- "type": "string"
- },
- "mode": {
- "type": "string"
- },
- "receiver": {
- "type": "string"
- },
- "receiverType": {
- "type": "string"
- },
- "status": {
- "type": "string"
- },
- "totalDurationInMinutes": {
- "type": "integer"
- },
- "totalParticipants": {
- "type": "integer"
- },
- "type": {
- "type": "string"
- },
- "mid": {
- "type": "string"
- },
- "startedAt": {
- "type": "integer"
- },
- "endedAt": {
- "type": "integer"
- },
- "participants": {
- "type": "array",
- "items": {
- "properties": {
- "": {
- "$ref": "#/components/schemas/participantSchema"
- }
- },
- "type": "object"
- }
- }
- },
- "type": "object"
- },
- "deleteSchema": {
- "properties": {
- "success": {
- "type": "boolean"
- },
- "message": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "metaSchema": {
- "properties": {
- "pagination": {
- "properties": {
+ }
+ },
+ "meta": {
+ "type": "object",
+ "properties": {
+ "pagination": {
+ "type": "object",
+ "properties": {
"total": {
- "type": "integer"
+ "type": "integer",
+ "example": 2,
+ "default": 0
},
"count": {
- "type": "integer"
+ "type": "integer",
+ "example": 2,
+ "default": 0
},
- "per_page": {
- "type": "integer"
+ "total_pages": {
+ "type": "integer",
+ "example": 1,
+ "default": 0
},
"current_page": {
- "type": "integer"
- },
- "total_pages": {
- "type": "integer"
+ "type": "integer",
+ "example": 1,
+ "default": 0
}
- },
- "type": "object"
- }
- },
- "type": "object"
- },
- "participantSchema": {
- "properties": {
- "uid": {
- "type": "string"
- },
- "totalAudioMinutes": {
- "type": "integer"
- },
- "totalVideoMinutes": {
- "type": "integer"
- },
- "isJoined": {
- "type": "boolean"
- },
- "state": {
- "type": "string"
- },
- "totalDuration": {
- "type": "integer"
- },
- "deviceId": {
- "type": "integer"
- },
- "joinedAt": {
- "type": "integer"
- },
- "mid": {
- "type": "string"
- },
- "leftAt": {
- "type": "integer"
+ }
+ }
+ }
}
- },
- "type": "object"
+ }
+ }
+ }
}
- },
- "parameters": {
- "uid": {
- "name": "uid",
- "in": "path",
- "description": "An UID of a user.",
- "required": true,
- "schema": {
- "type": "string"
- },
+ },
+ "400": {
+ "description": "400",
+ "content": {
+ "application/json": {
"examples": {
- "string": {
- "summary": "UID",
- "value": ""
- }
- }
- },
- "guid": {
- "name": "guid",
- "in": "path",
- "description": "A GUID of a group.",
- "required": true,
- "schema": {
- "type": "string"
+ "Result": {
+ "value": "{}"
+ }
},
- "examples": {
- "string": {
- "summary": "GUID",
- "value": ""
- }
+ "schema": {
+ "type": "object",
+ "properties": {}
}
+ }
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/calls/{sessionId}": {
+ "get": {
+ "summary": "Get Call",
+ "description": "Fetches all the details of the call whose sessionId is passed in the URL.",
+ "operationId": "get-call",
+ "parameters": [
+ {
+ "name": "onBehalfOf",
+ "in": "header",
+ "description": "UID of the user on whose behalf the action is performed.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "sessionId",
+ "in": "path",
+ "description": "Call to Retrieve",
+ "schema": {
+ "type": "string"
},
- "requiredonBehalfOf": {
- "name": "onBehalfOf",
- "in": "header",
- "description": "UID of the user on whose behalf the action is performed.",
- "required": true,
+ "required": true
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "200",
+ "content": {
+ "application/json": {
+ "examples": {
+ "Get Call": {
+ "value": "{\n \"data\": [\n {\n \"sessionId\": \"v1.eu.2574867aa2e6e417.17158459999d7fa95b1b4faea599f11eb5ecf07611b0b335c3\",\n \"totalAudioMinutes\": 0,\n \"totalVideoMinutes\": 0,\n \"totalDuration\": \"00:00:00\",\n \"hasRecording\": false,\n \"initiatedAt\": 1715845999,\n \"initiator\": \"cometchat-uid-1\",\n \"mode\": \"call\",\n \"receiver\": \"cometchat-uid-2\",\n \"receiverType\": \"user\",\n \"status\": \"initiated\",\n \"totalDurationInMinutes\": 0,\n \"totalParticipants\": 0,\n \"type\": \"audio\",\n \"participants\": [\n {\n \"uid\": \"cometchat-uid-1\",\n \"totalAudioMinutes\": 0,\n \"totalVideoMinutes\": 0,\n \"isJoined\": false,\n \"totalDurationInMinutes\": 0,\n \"name\": \"Andrew Joseph\",\n \"avatar\": \"https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-1.webp\"\n },\n {\n \"uid\": \"cometchat-uid-2\",\n \"totalAudioMinutes\": 0,\n \"totalVideoMinutes\": 0,\n \"isJoined\": false,\n \"state\": \"unanswered\",\n \"totalDurationInMinutes\": 0,\n \"name\": \"George Alan\",\n \"avatar\": \"https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-2.webp\"\n }\n ],\n \"data\": {\n \"entities\": {\n \"initiator\": {\n \"entity\": {\n \"uid\": \"cometchat-uid-1\",\n \"name\": \"Andrew Joseph\",\n \"avatar\": \"https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-1.webp\"\n }\n },\n \"receiver\": {\n \"entity\": {\n \"uid\": \"cometchat-uid-2\",\n \"name\": \"George Alan\",\n \"avatar\": \"https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-2.webp\"\n }\n }\n }\n }\n }\n ]\n}"
+ }
+ },
"schema": {
- "type": "string"
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "sessionId": {
+ "type": "string",
+ "example": "v1.eu.2574867aa2e6e417.17158459999d7fa95b1b4faea599f11eb5ecf07611b0b335c3"
+ },
+ "totalAudioMinutes": {
+ "type": "integer",
+ "example": 0,
+ "default": 0
+ },
+ "totalVideoMinutes": {
+ "type": "integer",
+ "example": 0,
+ "default": 0
+ },
+ "totalDuration": {
+ "type": "string",
+ "example": "00:00:00"
+ },
+ "hasRecording": {
+ "type": "boolean",
+ "example": false,
+ "default": true
+ },
+ "initiatedAt": {
+ "type": "integer",
+ "example": 1715845999,
+ "default": 0
+ },
+ "initiator": {
+ "type": "string",
+ "example": "cometchat-uid-1"
+ },
+ "mode": {
+ "type": "string",
+ "example": "call"
+ },
+ "receiver": {
+ "type": "string",
+ "example": "cometchat-uid-2"
+ },
+ "receiverType": {
+ "type": "string",
+ "example": "user"
+ },
+ "status": {
+ "type": "string",
+ "example": "initiated"
+ },
+ "totalDurationInMinutes": {
+ "type": "integer",
+ "example": 0,
+ "default": 0
+ },
+ "totalParticipants": {
+ "type": "integer",
+ "example": 0,
+ "default": 0
+ },
+ "type": {
+ "type": "string",
+ "example": "audio"
+ },
+ "participants": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "uid": {
+ "type": "string",
+ "example": "cometchat-uid-1"
+ },
+ "totalAudioMinutes": {
+ "type": "integer",
+ "example": 0,
+ "default": 0
+ },
+ "totalVideoMinutes": {
+ "type": "integer",
+ "example": 0,
+ "default": 0
+ },
+ "isJoined": {
+ "type": "boolean",
+ "example": false,
+ "default": true
+ },
+ "totalDurationInMinutes": {
+ "type": "integer",
+ "example": 0,
+ "default": 0
+ },
+ "name": {
+ "type": "string",
+ "example": "Andrew Joseph"
+ },
+ "avatar": {
+ "type": "string",
+ "example": "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-1.webp"
+ }
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "properties": {
+ "entities": {
+ "type": "object",
+ "properties": {
+ "initiator": {
+ "type": "object",
+ "properties": {
+ "entity": {
+ "type": "object",
+ "properties": {
+ "uid": {
+ "type": "string",
+ "example": "cometchat-uid-1"
+ },
+ "name": {
+ "type": "string",
+ "example": "Andrew Joseph"
+ },
+ "avatar": {
+ "type": "string",
+ "example": "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-1.webp"
+ }
+ }
+ }
+ }
+ },
+ "receiver": {
+ "type": "object",
+ "properties": {
+ "entity": {
+ "type": "object",
+ "properties": {
+ "uid": {
+ "type": "string",
+ "example": "cometchat-uid-2"
+ },
+ "name": {
+ "type": "string",
+ "example": "George Alan"
+ },
+ "avatar": {
+ "type": "string",
+ "example": "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-2.webp"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
}
- },
- "onBehalfOf": {
- "name": "onBehalfOf",
- "in": "header",
- "description": "UID of the user on whose behalf the action is performed.",
+ }
+ }
+ },
+ "400": {
+ "description": "400",
+ "content": {
+ "application/json": {
+ "examples": {
+ "Result": {
+ "value": "{}"
+ }
+ },
"schema": {
- "type": "string"
+ "type": "object",
+ "properties": {}
}
+ }
}
+ }
},
- "securitySchemes": {
- "apiKey": {
- "type": "apiKey",
- "description": "API Key with fullAccess scope(i.e. Rest API Key from the Dashboard).",
- "name": "apikey",
- "in": "header"
- }
- }
- },
- "tags": [
- {
- "name": "Calls",
- "description": "The Calls tag"
- }
- ]
+ "deprecated": false
+ }
+ }
+ },
+ "x-readme": {
+ "headers": [],
+ "explorer-enabled": true,
+ "proxy-enabled": true
+ },
+ "x-readme-fauxas": true
}
\ No newline at end of file
diff --git a/calls/android/actions.mdx b/calls/android/actions.mdx
index 04f10bd94..33bd49ce2 100644
--- a/calls/android/actions.mdx
+++ b/calls/android/actions.mdx
@@ -1,6 +1,7 @@
---
title: "Actions"
sidebarTitle: "Actions"
+description: "Actions — CometChat documentation."
---
Use call actions to create your own custom controls or trigger call functionality dynamically based on your use case. All actions are called on the `CallSession` singleton instance during an active call session.
diff --git a/calls/android/audio-controls.mdx b/calls/android/audio-controls.mdx
index 0a548c07d..cb35d1572 100644
--- a/calls/android/audio-controls.mdx
+++ b/calls/android/audio-controls.mdx
@@ -1,6 +1,7 @@
---
title: "Audio Controls"
sidebarTitle: "Audio Controls"
+description: "Audio Controls — CometChat documentation."
---
Control audio during an active call session. These methods allow you to mute/unmute the local microphone and change the audio output device.
diff --git a/calls/android/audio-modes.mdx b/calls/android/audio-modes.mdx
index 91f8dc117..18f45020d 100644
--- a/calls/android/audio-modes.mdx
+++ b/calls/android/audio-modes.mdx
@@ -1,6 +1,7 @@
---
title: "Audio Modes"
sidebarTitle: "Audio Modes"
+description: "Audio Modes — CometChat documentation."
---
Control audio output routing during calls. Switch between speaker, earpiece, Bluetooth, and wired headphones based on user preference or device availability.
diff --git a/calls/android/authentication.mdx b/calls/android/authentication.mdx
index e2d53d892..996c1dafe 100644
--- a/calls/android/authentication.mdx
+++ b/calls/android/authentication.mdx
@@ -1,6 +1,7 @@
---
title: "Authentication"
sidebarTitle: "Authentication"
+description: "Authentication — CometChat documentation."
---
Before users can make or receive calls, they must be authenticated with the CometChat Calls SDK. This guide covers the login and logout methods.
@@ -112,7 +113,7 @@ This is the recommended authentication method for production applications. The A
### Auth Token Flow
1. User authenticates with your backend
-2. Your backend calls the [CometChat Create Auth Token API](https://api-explorer.cometchat.com/reference/create-authtoken)
+2. Your backend calls the [CometChat Create Auth Token API](/rest-api/chat-apis)
3. Your backend returns the Auth Token to the client
4. Client uses the Auth Token to login
diff --git a/calls/android/background-handling.mdx b/calls/android/background-handling.mdx
index c507d0bd4..6c5ccd8e1 100644
--- a/calls/android/background-handling.mdx
+++ b/calls/android/background-handling.mdx
@@ -1,6 +1,7 @@
---
title: "Background Handling"
sidebarTitle: "Background Handling"
+description: "Background Handling — CometChat documentation."
---
Keep calls alive when users navigate away from your app. Background handling ensures the call continues running when users press the home button, switch to another app, or lock their device.
diff --git a/calls/android/button-click-listener.mdx b/calls/android/button-click-listener.mdx
index 6beadb973..b20274a92 100644
--- a/calls/android/button-click-listener.mdx
+++ b/calls/android/button-click-listener.mdx
@@ -1,6 +1,7 @@
---
title: "Button Click Listener"
sidebarTitle: "Button Click Listener"
+description: "Button Click Listener — CometChat documentation."
---
Intercept UI button clicks with `ButtonClickListener`. This listener provides callbacks when users tap buttons in the call UI, allowing you to implement custom behavior or show confirmation dialogs.
diff --git a/calls/android/call-layouts.mdx b/calls/android/call-layouts.mdx
index 49d96683a..366c1b9d0 100644
--- a/calls/android/call-layouts.mdx
+++ b/calls/android/call-layouts.mdx
@@ -1,6 +1,7 @@
---
title: "Call Layouts"
sidebarTitle: "Call Layouts"
+description: "Call Layouts — CometChat documentation."
---
Choose how participants are displayed during a call. The SDK provides multiple layout options to suit different use cases like team meetings, presentations, or one-on-one calls.
diff --git a/calls/android/call-logs.mdx b/calls/android/call-logs.mdx
index de1b14018..7e2576ed3 100644
--- a/calls/android/call-logs.mdx
+++ b/calls/android/call-logs.mdx
@@ -1,6 +1,7 @@
---
title: "Call Logs"
sidebarTitle: "Call Logs"
+description: "Call Logs — CometChat documentation."
---
Retrieve call history for your application. Call logs provide detailed information about past calls including duration, participants, recordings, and status.
diff --git a/calls/android/custom-control-panel.mdx b/calls/android/custom-control-panel.mdx
index bdbc54ab9..a912e33e1 100644
--- a/calls/android/custom-control-panel.mdx
+++ b/calls/android/custom-control-panel.mdx
@@ -1,6 +1,7 @@
---
title: "Custom Control Panel"
sidebarTitle: "Custom Control Panel"
+description: "Custom Control Panel — CometChat documentation."
---
Build a fully customized control panel for your call interface by hiding the default controls and implementing your own UI with call actions. This guide walks you through creating a custom control panel with essential call controls.
diff --git a/calls/android/custom-participant-list.mdx b/calls/android/custom-participant-list.mdx
index 6c793987e..2ed66ca32 100644
--- a/calls/android/custom-participant-list.mdx
+++ b/calls/android/custom-participant-list.mdx
@@ -1,6 +1,7 @@
---
title: "Custom Participant List"
sidebarTitle: "Custom Participant List"
+description: "Custom Participant List — CometChat documentation."
---
Build a custom participant list UI that displays real-time participant information with full control over layout and interactions. This guide demonstrates how to hide the default participant list and create your own using participant events and actions.
diff --git a/calls/android/events.mdx b/calls/android/events.mdx
index d0566d502..706432e3c 100644
--- a/calls/android/events.mdx
+++ b/calls/android/events.mdx
@@ -1,6 +1,7 @@
---
title: "Events"
sidebarTitle: "Events"
+description: "Events — CometChat documentation."
---
Handle call session events to build responsive UIs. The SDK provides five event listener interfaces to monitor session status, participant activities, media changes, button clicks, and layout changes. Each listener is lifecycle-aware and automatically cleaned up when the Activity or Fragment is destroyed.
diff --git a/calls/android/idle-timeout.mdx b/calls/android/idle-timeout.mdx
index 9efb4d9d8..84e202976 100644
--- a/calls/android/idle-timeout.mdx
+++ b/calls/android/idle-timeout.mdx
@@ -1,6 +1,7 @@
---
title: "Idle Timeout"
sidebarTitle: "Idle Timeout"
+description: "Idle Timeout — CometChat documentation."
---
Configure automatic session termination when a user is alone in a call. Idle timeout helps manage resources by ending sessions that have no active participants.
diff --git a/calls/android/in-call-chat.mdx b/calls/android/in-call-chat.mdx
index 8274e55fb..7becc015f 100644
--- a/calls/android/in-call-chat.mdx
+++ b/calls/android/in-call-chat.mdx
@@ -1,6 +1,7 @@
---
title: "In-Call Chat"
sidebarTitle: "In-Call Chat"
+description: "In-Call Chat — CometChat documentation."
---
Add real-time messaging to your call experience using CometChat UI Kit. This allows participants to send text messages, share files, and communicate via chat while on a call.
diff --git a/calls/android/join-session.mdx b/calls/android/join-session.mdx
index 199d84fa3..a0f12f96d 100644
--- a/calls/android/join-session.mdx
+++ b/calls/android/join-session.mdx
@@ -1,6 +1,7 @@
---
title: "Join Session"
sidebarTitle: "Join Session"
+description: "Join Session — CometChat documentation."
---
Join a call session using one of two approaches: the quick start method with a session ID, or the advanced flow with manual token generation for more control.
diff --git a/calls/android/layout-listener.mdx b/calls/android/layout-listener.mdx
index b72324a69..770ea3d99 100644
--- a/calls/android/layout-listener.mdx
+++ b/calls/android/layout-listener.mdx
@@ -1,6 +1,7 @@
---
title: "Layout Listener"
sidebarTitle: "Layout Listener"
+description: "Layout Listener — CometChat documentation."
---
Monitor layout changes with `LayoutListener`. This listener provides callbacks for call layout changes, participant list visibility, and Picture-in-Picture (PiP) mode state changes.
diff --git a/calls/android/layout-ui.mdx b/calls/android/layout-ui.mdx
index 838d98c38..a5ae2b2f6 100644
--- a/calls/android/layout-ui.mdx
+++ b/calls/android/layout-ui.mdx
@@ -1,6 +1,7 @@
---
title: "Layout & UI"
sidebarTitle: "Layout & UI"
+description: "Layout & UI — CometChat documentation."
---
Control the call layout and UI elements during an active session. These methods allow you to change the call layout, enable Picture-in-Picture mode, and update UI badges.
diff --git a/calls/android/link/changelog.mdx b/calls/android/link/changelog.mdx
index 45c1d5e58..7bfbdf1de 100644
--- a/calls/android/link/changelog.mdx
+++ b/calls/android/link/changelog.mdx
@@ -1,4 +1,5 @@
---
title: "Changelog"
url: "https://github.com/cometchat/calls-sdk-android/releases"
+description: "Navigate to Changelog documentation."
---
diff --git a/calls/android/link/github.mdx b/calls/android/link/github.mdx
index e8a858228..c9f8d2520 100644
--- a/calls/android/link/github.mdx
+++ b/calls/android/link/github.mdx
@@ -1,4 +1,5 @@
---
title: "GitHub"
url: "https://github.com/cometchat/calls-sdk-android"
+description: "Navigate to GitHub documentation."
---
diff --git a/calls/android/link/sample-apps.mdx b/calls/android/link/sample-apps.mdx
index 4827ad673..ce80912b6 100644
--- a/calls/android/link/sample-apps.mdx
+++ b/calls/android/link/sample-apps.mdx
@@ -1,4 +1,5 @@
---
title: "Sample Apps"
url: "https://github.com/cometchat/calls-sdk-android/tree/v5/samples"
+description: "Navigate to Sample Apps documentation."
---
diff --git a/calls/android/media-events-listener.mdx b/calls/android/media-events-listener.mdx
index f9de1e9d5..68a51d283 100644
--- a/calls/android/media-events-listener.mdx
+++ b/calls/android/media-events-listener.mdx
@@ -1,6 +1,7 @@
---
title: "Media Events Listener"
sidebarTitle: "Media Events Listener"
+description: "Media Events Listener — CometChat documentation."
---
Monitor local media state changes with `MediaEventsListener`. This listener provides callbacks for your own audio/video state changes, recording events, screen sharing, audio mode changes, and camera facing changes.
diff --git a/calls/android/overview.mdx b/calls/android/overview.mdx
index 58e8bcb42..e8a9848d6 100644
--- a/calls/android/overview.mdx
+++ b/calls/android/overview.mdx
@@ -1,6 +1,7 @@
---
title: "Calls SDK"
sidebarTitle: "Overview"
+description: "Overview of Calls SDK in CometChat."
---
-
-
-***
-
-## Option 2: Managing Webhooks via Management APIs
-
-If you prefer automation or need to manage webhooks programmatically, you can use our REST APIs.
-
-### Webhook Operations
-
-| Operation | API Reference |
-| -------------------------- | --------------------------------------------------------------------------------- |
-| Create a new webhook | [Create Webhook](/rest-api/management-apis/webhooks/create-webhook) |
-| Update an existing webhook | [Update Webhook](/rest-api/management-apis/webhooks/update-webhook) |
-| List all webhooks | [List Webhooks](/rest-api/management-apis/webhooks/list-webhooks) |
-| Get webhook by ID | [Get Webhook](/rest-api/management-apis/webhooks/get-webhook) |
-| Delete a webhook | [Delete Webhook](/rest-api/management-apis/webhooks/delete-webhook) |
-
-### Trigger Operations
-
-| Operation | API Reference |
-| ------------------------------ | ----------------------------------------------------------------------------------- |
-| Add triggers to a webhook | [Add Triggers](/rest-api/management-apis/webhooks/add-triggers) |
-| List triggers for a webhook | [List Triggers](/rest-api/management-apis/webhooks/list-triggers) |
-| Remove triggers from a webhook | [Remove Triggers](/rest-api/management-apis/webhooks/remove-triggers) |
-
-***
-
-Choose the method that best fits your use case—Dashboard for quick setup, or APIs for advanced and automated configurations.
diff --git a/fundamentals/webhooks-overview.mdx b/fundamentals/webhooks-overview.mdx
deleted file mode 100644
index 5950d4e2e..000000000
--- a/fundamentals/webhooks-overview.mdx
+++ /dev/null
@@ -1,188 +0,0 @@
----
-title: "Webhooks Overview"
-sidebarTitle: "Overview"
----
-
-CometChat Webhooks enable real-time, event-driven communication with your server by sending HTTP POST requests for specific events such as messages, user actions, group updates, calls, and moderation results.
-
-You can use webhooks to build custom workflows such as sending SMS or email notifications, logging activity, syncing with external systems, or triggering automation.
-
-***
-
-## Setting Up Your Webhook Endpoint
-
-To successfully receive and process events from CometChat, your webhook endpoint must meet the following criteria:
-
-1. **Use HTTPS** – All webhook URLs must be secured with SSL.
-2. **Be publicly accessible** – Your server should be reachable from the internet.
-3. **Support POST method** – Events will be delivered as `HTTP POST` requests with `application/json` content.
-4. **Return a 200 OK** – Your endpoint must acknowledge receipt by responding with `HTTP 200`.
-
-***
-
-## Securing Your Webhook
-
-### Basic Authentication (Recommended)
-
-To ensure only authorized systems can access your endpoint, use Basic Authentication:
-
-```html
-Authorization: Basic
-
-
-To access media files, use the media URL from the webhook payload to obtain a URL secured with a file access token (FAT). This URL redirects to a pre-signed URL that remains valid for 5 minutes.
-
-**Sample request:**
-
-```html
-curl --location 'https://files-+
Explore our core offerings to power your in-app communication needs.
@@ -27,27 +26,29 @@ canonical: "https://cometchat.com/docs"+
Enhance your app with these powerful communication features.
+
Additional solutions to customize your CometChat experience.
- Quick links to deeper integration guides, API references, and community support. +
+ Quick links to deeper integration guides, API references, and community + support.