Repository: GetStream/stream-chat-android
Pull request #5740: Deprecate third-party calls related APIs (Agora and 100ms).
Author: login: JcMinarro
Created: 2025-04-22T08:11:56Z | Merged: 2025-04-30T10:51:29Z

### 🎯 Goal
The integration of video calls using third-party libraries is no longer natively supported. 
In this PR, all related API calls to our server have been marked as deprecated and will be removed in upcoming releases.

Complete: AND-470



Diff:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9b854820870..494c35e4532 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,7 @@
 - Add `teamsRole` field to the `User` model for team-based roles. [#5737](https://github.com/GetStream/stream-chat-android/pull/5737)
 
 ### ⚠️ Changed
+- Deprecated API endpoints related to third-party video call integrations, which are no longer natively supported. These endpoints will be removed in future releases. [#5740](https://github.com/GetStream/stream-chat-android/pull/5740)
 
 ### ❌ Removed
 
diff --git a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/ChatClient.kt b/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/ChatClient.kt
index 97b2daa8a70..1e3159849ca 100644
--- a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/ChatClient.kt
+++ b/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/ChatClient.kt
@@ -3687,6 +3687,10 @@ internal constructor(
      * @param callType Represents call type such as `video` or `audio`.
      * @param callId A unique identifier to assign to the call. The id is case-insensitive.
      */
+    @Deprecated(
+        "This third-party library integration is deprecated. Contact the support team for more information.",
+        level = DeprecationLevel.WARNING,
+    )
     @CheckResult
     public fun createVideoCall(
         channelType: String,
@@ -3707,6 +3711,10 @@ internal constructor(
      *
      * @param callId The call id, which indicates a dedicated video call id on the channel.
      */
+    @Deprecated(
+        "This third-party library integration is deprecated. Contact the support team for more information.",
+        level = DeprecationLevel.WARNING,
+    )
     @CheckResult
     public fun getVideoCallToken(callId: String): Call<VideoCallToken> {
         return api.getVideoCallToken(callId = callId)
diff --git a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api/ChatApi.kt b/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api/ChatApi.kt
index 3f1abc1aafb..843c348b9a2 100644
--- a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api/ChatApi.kt
+++ b/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api/ChatApi.kt
@@ -474,9 +474,17 @@ internal interface ChatApi {
         createdAtBeforeOrEqual: Date?,
     ): Call<List<BannedUser>>
 
+    @Deprecated(
+        "This third-party library integration is deprecated. Contact the support team for more information.",
+        level = DeprecationLevel.WARNING,
+    )
     @CheckResult
     fun createVideoCall(channelId: String, channelType: String, callId: String, callType: String): Call<VideoCallInfo>
 
+    @Deprecated(
+        "This third-party library integration is deprecated. Contact the support team for more information.",
+        level = DeprecationLevel.WARNING,
+    )
     @CheckResult
     fun getVideoCallToken(callId: String): Call<VideoCallToken>
 
diff --git a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/MoshiChatApi.kt b/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/MoshiChatApi.kt
index 8ed82a9f7e3..73939d781aa 100644
--- a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/MoshiChatApi.kt
+++ b/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/MoshiChatApi.kt
@@ -1231,6 +1231,11 @@ constructor(
             }
     }
 
+    @Deprecated(
+        "This third-party library integration is deprecated. Contact the support team for more information.",
+        level = DeprecationLevel.WARNING,
+    )
+    @Suppress("DEPRECATION")
     override fun createVideoCall(
         channelId: String,
         channelType: String,
@@ -1244,6 +1249,11 @@ constructor(
         ).map(CreateVideoCallResponse::toDomain)
     }
 
+    @Deprecated(
+        "This third-party library integration is deprecated. Contact the support team for more information.",
+        level = DeprecationLevel.WARNING,
+    )
+    @Suppress("DEPRECATION")
     override fun getVideoCallToken(callId: String): Call<VideoCallToken> {
         return callApi.getCallToken(callId, VideoCallTokenRequest(callId)).map(VideoCallTokenResponse::toDomain)
     }
diff --git a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/endpoint/VideoCallApi.kt b/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/endpoint/VideoCallApi.kt
index 25d5a50f2ce..454ead19819 100644
--- a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/endpoint/VideoCallApi.kt
+++ b/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/endpoint/VideoCallApi.kt
@@ -29,6 +29,10 @@ import retrofit2.http.Path
 @AuthenticatedApi
 internal interface VideoCallApi {
 
+    @Deprecated(
+        "This third-party library integration is deprecated. Contact the support team for more information.",
+        level = DeprecationLevel.WARNING,
+    )
     @POST("/channels/{channelType}/{channelId}/call")
     fun createCall(
         @Path("channelType") channelType: String,
@@ -36,6 +40,10 @@ internal interface VideoCallApi {
         @Body request: VideoCallCreateRequest,
     ): RetrofitCall<CreateVideoCallResponse>
 
+    @Deprecated(
+        "This third-party library integration is deprecated. Contact the support team for more information.",
+        level = DeprecationLevel.WARNING,
+    )
     @POST("/calls/{callId}")
     fun getCallToken(
         @Path("callId") callId: String,
diff --git a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/mapping/VideoCallMapping.kt b/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/mapping/VideoCallMapping.kt
index 5f163e4d86f..4d45cae53f2 100644
--- a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/mapping/VideoCallMapping.kt
+++ b/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/mapping/VideoCallMapping.kt
@@ -25,14 +25,27 @@ import io.getstream.chat.android.models.HMSRoom
 import io.getstream.chat.android.models.VideoCallInfo
 import io.getstream.chat.android.models.VideoCallToken
 
+@Deprecated(
+    "This third-party library integration is deprecated. Contact the support team for more information.",
+    level = DeprecationLevel.WARNING,
+)
 internal fun AgoraDto.toDomain(): AgoraChannel {
     return AgoraChannel(channel = channel)
 }
 
+@Deprecated(
+    "This third-party library integration is deprecated. Contact the support team for more information.",
+    level = DeprecationLevel.WARNING,
+)
 internal fun HMSDto.toDomain(): HMSRoom {
     return HMSRoom(roomId = roomId, roomName = roomName)
 }
 
+@Deprecated(
+    "This third-party library integration is deprecated. Contact the support team for more information.",
+    level = DeprecationLevel.WARNING,
+)
+@Suppress("DEPRECATION")
 internal fun CreateVideoCallResponse.toDomain(): VideoCallInfo {
     return VideoCallInfo(
         callId = call.id,
@@ -48,6 +61,10 @@ internal fun CreateVideoCallResponse.toDomain(): VideoCallInfo {
     )
 }
 
+@Deprecated(
+    "This third-party library integration is deprecated. Contact the support team for more information.",
+    level = DeprecationLevel.WARNING,
+)
 internal fun VideoCallTokenResponse.toDomain(): VideoCallToken {
     return VideoCallToken(
         token = token,
diff --git a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/model/response/VideoCallTokenResponse.kt b/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/model/response/VideoCallTokenResponse.kt
index ff2c6bc717b..a90bca2f6dc 100644
--- a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/model/response/VideoCallTokenResponse.kt
+++ b/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/model/response/VideoCallTokenResponse.kt
@@ -19,6 +19,10 @@ package io.getstream.chat.android.client.api2.model.response
 import com.squareup.moshi.Json
 import com.squareup.moshi.JsonClass
 
+@Deprecated(
+    "This third-party library integration is deprecated. Contact the support team for more information.",
+    level = DeprecationLevel.WARNING,
+)
 @JsonClass(generateAdapter = true)
 internal data class VideoCallTokenResponse(
     val token: String,
diff --git a/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/ChatClientCallApiTests.kt b/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/ChatClientCallApiTests.kt
deleted file mode 100644
index ee5d504f910..00000000000
--- a/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/ChatClientCallApiTests.kt
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (c) 2014-2025 Stream.io Inc. All rights reserved.
- *
- * Licensed under the Stream License;
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *    https://github.com/GetStream/stream-chat-android/blob/main/LICENSE
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.getstream.chat.android.client
-
-import io.getstream.chat.android.client.chatclient.BaseChatClientTest
-import io.getstream.chat.android.client.utils.RetroError
-import io.getstream.chat.android.client.utils.RetroSuccess
-import io.getstream.chat.android.client.utils.verifyNetworkError
-import io.getstream.chat.android.client.utils.verifySuccess
-import io.getstream.chat.android.models.VideoCallInfo
-import io.getstream.chat.android.models.VideoCallToken
-import io.getstream.chat.android.positiveRandomInt
-import io.getstream.chat.android.randomString
-import io.getstream.chat.android.randomVideoCallInfo
-import io.getstream.chat.android.randomVideoCallToken
-import kotlinx.coroutines.test.runTest
-import org.junit.jupiter.api.Test
-import org.mockito.kotlin.any
-import org.mockito.kotlin.whenever
-
-/**
- * Tests covering the calls functionality of the [ChatClient].
- */
-internal class ChatClientCallApiTests : BaseChatClientTest() {
-
-    @Test
-    fun createVideoCallSuccess() = runTest {
-        // given
-        val channelType = randomString()
-        val channelId = randomString()
-        val callType = randomString()
-        val callId = randomString()
-        val videoCallInfo = randomVideoCallInfo()
-        whenever(api.createVideoCall(any(), any(), any(), any()))
-            .thenReturn(RetroSuccess(videoCallInfo).toRetrofitCall())
-        // when
-        val result = chatClient.createVideoCall(channelType, channelId, callType, callId).await()
-        // then
-        verifySuccess(result, videoCallInfo)
-    }
-
-    @Test
-    fun createVideoCallError() = runTest {
-        // given
-        val channelType = randomString()
-        val channelId = randomString()
-        val callType = randomString()
-        val callId = randomString()
-        val statusCode = positiveRandomInt()
-        whenever(api.createVideoCall(any(), any(), any(), any()))
-            .thenReturn(RetroError<VideoCallInfo>(statusCode).toRetrofitCall())
-        // when
-        val result = chatClient.createVideoCall(channelType, channelId, callType, callId).await()
-        // then
-        verifyNetworkError(result, statusCode)
-    }
-
-    @Test
-    fun getVideoCallTokenSuccess() = runTest {
-        // given
-        val callId = randomString()
-        val videoCallToken = randomVideoCallToken()
-        whenever(api.getVideoCallToken(any()))
-            .thenReturn(RetroSuccess(videoCallToken).toRetrofitCall())
-        // when
-        val result = chatClient.getVideoCallToken(callId).await()
-        // then
-        verifySuccess(result, videoCallToken)
-    }
-
-    @Test
-    fun getVideoCallTokenError() = runTest {
-        // given
-        val callId = randomString()
-        val statusCode = positiveRandomInt()
-        whenever(api.getVideoCallToken(any()))
-            .thenReturn(RetroError<VideoCallToken>(statusCode).toRetrofitCall())
-        // when
-        val result = chatClient.getVideoCallToken(callId).await()
-        // then
-        verifyNetworkError(result, statusCode)
-    }
-}
diff --git a/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/Mother.kt b/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/Mother.kt
index db827650609..4336d1602af 100644
--- a/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/Mother.kt
+++ b/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/Mother.kt
@@ -24,7 +24,6 @@ import io.getstream.chat.android.client.api.models.QueryUsersRequest
 import io.getstream.chat.android.client.api.models.SearchMessagesRequest
 import io.getstream.chat.android.client.api.models.SendActionRequest
 import io.getstream.chat.android.client.api.models.UploadFileResponse
-import io.getstream.chat.android.client.api2.model.dto.AgoraDto
 import io.getstream.chat.android.client.api2.model.dto.AttachmentDto
 import io.getstream.chat.android.client.api2.model.dto.ChannelInfoDto
 import io.getstream.chat.android.client.api2.model.dto.CommandDto
@@ -53,24 +52,20 @@ import io.getstream.chat.android.client.api2.model.dto.DownstreamUserDto
 import io.getstream.chat.android.client.api2.model.dto.DownstreamVoteDto
 import io.getstream.chat.android.client.api2.model.dto.ErrorDetailDto
 import io.getstream.chat.android.client.api2.model.dto.ErrorDto
-import io.getstream.chat.android.client.api2.model.dto.HMSDto
 import io.getstream.chat.android.client.api2.model.dto.PrivacySettingsDto
 import io.getstream.chat.android.client.api2.model.dto.ReadReceiptsDto
 import io.getstream.chat.android.client.api2.model.dto.SearchWarningDto
 import io.getstream.chat.android.client.api2.model.dto.TypingIndicatorsDto
-import io.getstream.chat.android.client.api2.model.dto.VideoCallInfoDto
 import io.getstream.chat.android.client.api2.model.response.AppDto
 import io.getstream.chat.android.client.api2.model.response.AppSettingsResponse
 import io.getstream.chat.android.client.api2.model.response.BannedUserResponse
 import io.getstream.chat.android.client.api2.model.response.BlockUserResponse
-import io.getstream.chat.android.client.api2.model.response.CreateVideoCallResponse
 import io.getstream.chat.android.client.api2.model.response.DraftMessageResponse
 import io.getstream.chat.android.client.api2.model.response.FileUploadConfigDto
 import io.getstream.chat.android.client.api2.model.response.QueryDraftMessagesResponse
 import io.getstream.chat.android.client.api2.model.response.SocketErrorResponse
 import io.getstream.chat.android.client.api2.model.response.TokenResponse
 import io.getstream.chat.android.client.api2.model.response.UnblockUserResponse
-import io.getstream.chat.android.client.api2.model.response.VideoCallTokenResponse
 import io.getstream.chat.android.client.events.ConnectedEvent
 import io.getstream.chat.android.client.events.UserPresenceChangedEvent
 import io.getstream.chat.android.client.logger.ChatLogLevel
@@ -1101,53 +1096,6 @@ internal object Mother {
         thumb_url = thumbUrl,
     )
 
-    fun randomAgoraDto(channel: String = randomString()): AgoraDto =
-        AgoraDto(channel)
-
-    fun randomHMSDto(
-        roomId: String = randomString(),
-        roomName: String = randomString(),
-    ): HMSDto = HMSDto(
-        roomId = roomId,
-        roomName = roomName,
-    )
-
-    fun randomCreateVideoCallResponse(
-        call: VideoCallInfoDto = randomVideoCallInfoDto(),
-        token: String = randomString(),
-        agoraUid: Int = randomInt(),
-        agoraAppId: String = randomString(),
-    ): CreateVideoCallResponse = CreateVideoCallResponse(
-        call = call,
-        token = token,
-        agoraUid = agoraUid,
-        agoraAppId = agoraAppId,
-    )
-
-    fun randomVideoCallInfoDto(
-        id: String = randomString(),
-        provider: String = randomString(),
-        type: String = randomString(),
-        agora: AgoraDto = randomAgoraDto(),
-        hms: HMSDto = randomHMSDto(),
-    ): VideoCallInfoDto = VideoCallInfoDto(
-        id = id,
-        provider = provider,
-        type = type,
-        agora = agora,
-        hms = hms,
-    )
-
-    fun randomVideoCallTokenResponse(
-        token: String = randomString(),
-        agoraUid: Int = randomInt(),
-        agoraAppId: String = randomString(),
-    ): VideoCallTokenResponse = VideoCallTokenResponse(
-        token = token,
-        agoraUid = agoraUid,
-        agoraAppId = agoraAppId,
-    )
-
     fun randomErrorDto(
         code: Int = randomInt(),
         message: String = randomString(),
diff --git a/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/api2/MoshiChatApiTest.kt b/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/api2/MoshiChatApiTest.kt
index 3e2ef1509c7..2833bc39639 100644
--- a/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/api2/MoshiChatApiTest.kt
+++ b/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/api2/MoshiChatApiTest.kt
@@ -67,13 +67,10 @@ import io.getstream.chat.android.client.api2.model.requests.UpdateMemberPartialR
 import io.getstream.chat.android.client.api2.model.requests.UpdateMemberPartialResponse
 import io.getstream.chat.android.client.api2.model.requests.UpstreamOptionDto
 import io.getstream.chat.android.client.api2.model.requests.UpstreamVoteDto
-import io.getstream.chat.android.client.api2.model.requests.VideoCallCreateRequest
-import io.getstream.chat.android.client.api2.model.requests.VideoCallTokenRequest
 import io.getstream.chat.android.client.api2.model.response.AppSettingsResponse
 import io.getstream.chat.android.client.api2.model.response.BlockUserResponse
 import io.getstream.chat.android.client.api2.model.response.ChannelResponse
 import io.getstream.chat.android.client.api2.model.response.CompletableResponse
-import io.getstream.chat.android.client.api2.model.response.CreateVideoCallResponse
 import io.getstream.chat.android.client.api2.model.response.DevicesResponse
 import io.getstream.chat.android.client.api2.model.response.DraftMessageResponse
 import io.getstream.chat.android.client.api2.model.response.EventResponse
@@ -100,7 +97,6 @@ import io.getstream.chat.android.client.api2.model.response.TranslateMessageRequ
 import io.getstream.chat.android.client.api2.model.response.UnblockUserResponse
 import io.getstream.chat.android.client.api2.model.response.UpdateUsersResponse
 import io.getstream.chat.android.client.api2.model.response.UsersResponse
-import io.getstream.chat.android.client.api2.model.response.VideoCallTokenResponse
 import io.getstream.chat.android.client.call.RetrofitCall
 import io.getstream.chat.android.client.parser.toMap
 import io.getstream.chat.android.client.scope.ClientScope
@@ -1761,45 +1757,6 @@ internal class MoshiChatApiTest {
         verify(api, times(1)).queryMembers(any())
     }
 
-    @ParameterizedTest
-    @MethodSource("io.getstream.chat.android.client.api2.MoshiChatApiTestArguments#createVideoCallInput")
-    fun testCreateVideoCall(call: RetrofitCall<CreateVideoCallResponse>, expected: KClass<*>) = runTest {
-        // given
-        val api = mock<VideoCallApi>()
-        whenever(api.createCall(any(), any(), any())).doReturn(call)
-        val sut = Fixture()
-            .withCallApi(api)
-            .get()
-        // when
-        val channelType = randomString()
-        val channelId = randomString()
-        val callId = randomString()
-        val callType = randomString()
-        val result = sut.createVideoCall(channelId, channelType, callId, callType).await()
-        // then
-        val expectedBody = VideoCallCreateRequest(callId, callType)
-        result `should be instance of` expected
-        verify(api, times(1)).createCall(channelType, channelId, expectedBody)
-    }
-
-    @ParameterizedTest
-    @MethodSource("io.getstream.chat.android.client.api2.MoshiChatApiTestArguments#getVideoCallTokenInput")
-    fun testGetVideoCallToken(call: RetrofitCall<VideoCallTokenResponse>, expected: KClass<*>) = runTest {
-        // given
-        val api = mock<VideoCallApi>()
-        whenever(api.getCallToken(any(), any())).doReturn(call)
-        val sut = Fixture()
-            .withCallApi(api)
-            .get()
-        // when
-        val callId = randomString()
-        val result = sut.getVideoCallToken(callId).await()
-        // then
-        val expectedBody = VideoCallTokenRequest(callId)
-        result `should be instance of` expected
-        verify(api, times(1)).getCallToken(callId, expectedBody)
-    }
-
     @ParameterizedTest
     @MethodSource("io.getstream.chat.android.client.api2.MoshiChatApiTestArguments#sendEventInput")
     fun testSendEvent(call: RetrofitCall<EventResponse>, expected: KClass<*>) = runTest {
@@ -2144,10 +2101,6 @@ internal class MoshiChatApiTest {
             this.configApi = configApi
         }
 
-        fun withCallApi(callApi: VideoCallApi) = apply {
-            this.callApi = callApi
-        }
-
         fun withFileDownloadApi(fileDownloadApi: FileDownloadApi) = apply {
             this.fileDownloadApi = fileDownloadApi
         }
diff --git a/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/api2/MoshiChatApiTestArguments.kt b/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/api2/MoshiChatApiTestArguments.kt
index b70ca5d14cf..8d0d3d51b80 100644
--- a/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/api2/MoshiChatApiTestArguments.kt
+++ b/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/api2/MoshiChatApiTestArguments.kt
@@ -26,7 +26,6 @@ import io.getstream.chat.android.client.api2.model.response.AppSettingsResponse
 import io.getstream.chat.android.client.api2.model.response.BlockUserResponse
 import io.getstream.chat.android.client.api2.model.response.ChannelResponse
 import io.getstream.chat.android.client.api2.model.response.CompletableResponse
-import io.getstream.chat.android.client.api2.model.response.CreateVideoCallResponse
 import io.getstream.chat.android.client.api2.model.response.DevicesResponse
 import io.getstream.chat.android.client.api2.model.response.EventResponse
 import io.getstream.chat.android.client.api2.model.response.FlagResponse
@@ -49,7 +48,6 @@ import io.getstream.chat.android.client.api2.model.response.ThreadResponse
 import io.getstream.chat.android.client.api2.model.response.TokenResponse
 import io.getstream.chat.android.client.api2.model.response.UpdateUsersResponse
 import io.getstream.chat.android.client.api2.model.response.UsersResponse
-import io.getstream.chat.android.client.api2.model.response.VideoCallTokenResponse
 import io.getstream.chat.android.client.utils.RetroError
 import io.getstream.chat.android.client.utils.RetroSuccess
 import io.getstream.chat.android.models.EventType
@@ -384,18 +382,6 @@ internal object MoshiChatApiTestArguments {
         Arguments.of(RetroError<QueryMembersResponse>(statusCode = 500).toRetrofitCall(), Result.Failure::class),
     )
 
-    @JvmStatic
-    fun createVideoCallInput() = listOf(
-        Arguments.of(RetroSuccess(Mother.randomCreateVideoCallResponse()).toRetrofitCall(), Result.Success::class),
-        Arguments.of(RetroError<CreateVideoCallResponse>(statusCode = 500).toRetrofitCall(), Result.Failure::class),
-    )
-
-    @JvmStatic
-    fun getVideoCallTokenInput() = listOf(
-        Arguments.of(RetroSuccess(Mother.randomVideoCallTokenResponse()).toRetrofitCall(), Result.Success::class),
-        Arguments.of(RetroError<VideoCallTokenResponse>(statusCode = 500).toRetrofitCall(), Result.Failure::class),
-    )
-
     @JvmStatic
     fun sendEventInput() = listOf(
         Arguments.of(
diff --git a/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/api2/mapping/VideoCallMappingTest.kt b/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/api2/mapping/VideoCallMappingTest.kt
deleted file mode 100644
index 3293a773265..00000000000
--- a/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/api2/mapping/VideoCallMappingTest.kt
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 2014-2025 Stream.io Inc. All rights reserved.
- *
- * Licensed under the Stream License;
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *    https://github.com/GetStream/stream-chat-android/blob/main/LICENSE
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.getstream.chat.android.client.api2.mapping
-
-import io.getstream.chat.android.client.Mother
-import io.getstream.chat.android.models.AgoraChannel
-import io.getstream.chat.android.models.HMSRoom
-import io.getstream.chat.android.models.VideoCallInfo
-import io.getstream.chat.android.models.VideoCallToken
-import org.amshove.kluent.shouldBeEqualTo
-import org.junit.jupiter.api.Test
-
-internal class VideoCallMappingTest {
-
-    @Test
-    fun `AgoraDto is correctly mapped to AgoraChannel`() {
-        val agoraDto = Mother.randomAgoraDto()
-        val agoraChannel = agoraDto.toDomain()
-        val expected = AgoraChannel(agoraDto.channel)
-        agoraChannel shouldBeEqualTo expected
-    }
-
-    @Test
-    fun `HMSDto is correctly mapped to HMSRoom`() {
-        val hmsDto = Mother.randomHMSDto()
-        val hmsRoom = hmsDto.toDomain()
-        val expected = HMSRoom(hmsDto.roomId, hmsDto.roomName)
-        hmsRoom shouldBeEqualTo expected
-    }
-
-    @Test
-    fun `CreateVideoCallResponse is correctly mapped to VideoCallInfo`() {
-        val createVideoCallResponse = Mother.randomCreateVideoCallResponse()
-        val videoCallInfo = createVideoCallResponse.toDomain()
-        val expected = VideoCallInfo(
-            callId = createVideoCallResponse.call.id,
-            provider = createVideoCallResponse.call.provider,
-            type = createVideoCallResponse.call.type,
-            agoraChannel = createVideoCallResponse.call.agora.toDomain(),
-            hmsRoom = createVideoCallResponse.call.hms.toDomain(),
-            videoCallToken = VideoCallToken(
-                token = createVideoCallResponse.token,
-                agoraUid = createVideoCallResponse.agoraUid,
-                agoraAppId = createVideoCallResponse.agoraAppId,
-            ),
-        )
-        videoCallInfo shouldBeEqualTo expected
-    }
-
-    @Test
-    fun `VideoCallTokenResponse is correctly mapped to VideoCallToken`() {
-        val videoCallTokenResponse = Mother.randomVideoCallTokenResponse()
-        val videoCallToken = videoCallTokenResponse.toDomain()
-        val expected = VideoCallToken(
-            token = videoCallTokenResponse.token,
-            agoraUid = videoCallTokenResponse.agoraUid,
-            agoraAppId = videoCallTokenResponse.agoraAppId,
-        )
-        videoCallToken shouldBeEqualTo expected
-    }
-}
diff --git a/stream-chat-android-core/src/main/java/io/getstream/chat/android/models/AgoraChannel.kt b/stream-chat-android-core/src/main/java/io/getstream/chat/android/models/AgoraChannel.kt
index b4f18b9c9c2..5f01432f9a5 100644
--- a/stream-chat-android-core/src/main/java/io/getstream/chat/android/models/AgoraChannel.kt
+++ b/stream-chat-android-core/src/main/java/io/getstream/chat/android/models/AgoraChannel.kt
@@ -23,5 +23,9 @@ import androidx.compose.runtime.Immutable
  *
  * @property channel A new channel.
  */
+@Deprecated(
+    "This third-party library integration is deprecated. Contact the support team for more information.",
+    level = DeprecationLevel.WARNING,
+)
 @Immutable
 public data class AgoraChannel(val channel: String)
diff --git a/stream-chat-android-core/src/main/java/io/getstream/chat/android/models/HMSRoom.kt b/stream-chat-android-core/src/main/java/io/getstream/chat/android/models/HMSRoom.kt
index 48975cbdae5..d0cccd87120 100644
--- a/stream-chat-android-core/src/main/java/io/getstream/chat/android/models/HMSRoom.kt
+++ b/stream-chat-android-core/src/main/java/io/getstream/chat/android/models/HMSRoom.kt
@@ -24,6 +24,10 @@ import androidx.compose.runtime.Immutable
  * @property roomId A new room id.
  * @property roomName A new room name.
  */
+@Deprecated(
+    "This third-party library integration is deprecated. Contact the support team for more information.",
+    level = DeprecationLevel.WARNING,
+)
 @Immutable
 public data class HMSRoom(
     val roomId: String,
diff --git a/stream-chat-android-core/src/main/java/io/getstream/chat/android/models/VideoCallInfo.kt b/stream-chat-android-core/src/main/java/io/getstream/chat/android/models/VideoCallInfo.kt
index 8f5a0ee397b..19167b516fc 100644
--- a/stream-chat-android-core/src/main/java/io/getstream/chat/android/models/VideoCallInfo.kt
+++ b/stream-chat-android-core/src/main/java/io/getstream/chat/android/models/VideoCallInfo.kt
@@ -28,6 +28,10 @@ import androidx.compose.runtime.Immutable
  * @property hmsRoom The available room info of HMS.
  * @property videoCallToken The token info of the video call.
  */
+@Deprecated(
+    "This third-party library integration is deprecated. Contact the support team for more information.",
+    level = DeprecationLevel.WARNING,
+)
 @Immutable
 public data class VideoCallInfo(
     val callId: String,
diff --git a/stream-chat-android-core/src/main/java/io/getstream/chat/android/models/VideoCallToken.kt b/stream-chat-android-core/src/main/java/io/getstream/chat/android/models/VideoCallToken.kt
index 48541401e2d..2cb2ec6ca11 100644
--- a/stream-chat-android-core/src/main/java/io/getstream/chat/android/models/VideoCallToken.kt
+++ b/stream-chat-android-core/src/main/java/io/getstream/chat/android/models/VideoCallToken.kt
@@ -25,6 +25,10 @@ import androidx.compose.runtime.Immutable
  * @property agoraUid The Uid of Agora.
  * @property agoraAppId The App Id of Agora.
  */
+@Deprecated(
+    "This third-party library integration is deprecated. Contact the support team for more information.",
+    level = DeprecationLevel.WARNING,
+)
 @Immutable
 public data class VideoCallToken(
     val token: String,
diff --git a/stream-chat-android-core/src/testFixtures/kotlin/io/getstream/chat/android/Mother.kt b/stream-chat-android-core/src/testFixtures/kotlin/io/getstream/chat/android/Mother.kt
index 982315919b1..6c144196669 100644
--- a/stream-chat-android-core/src/testFixtures/kotlin/io/getstream/chat/android/Mother.kt
+++ b/stream-chat-android-core/src/testFixtures/kotlin/io/getstream/chat/android/Mother.kt
@@ -16,7 +16,6 @@
 
 package io.getstream.chat.android
 
-import io.getstream.chat.android.models.AgoraChannel
 import io.getstream.chat.android.models.Answer
 import io.getstream.chat.android.models.App
 import io.getstream.chat.android.models.AppSettings
@@ -35,7 +34,6 @@ import io.getstream.chat.android.models.Device
 import io.getstream.chat.android.models.DraftMessage
 import io.getstream.chat.android.models.FileUploadConfig
 import io.getstream.chat.android.models.Flag
-import io.getstream.chat.android.models.HMSRoom
 import io.getstream.chat.android.models.Member
 import io.getstream.chat.android.models.MemberData
 import io.getstream.chat.android.models.Message
@@ -57,8 +55,6 @@ import io.getstream.chat.android.models.ThreadParticipant
 import io.getstream.chat.android.models.UploadedFile
 import io.getstream.chat.android.models.User
 import io.getstream.chat.android.models.UserBlock
-import io.getstream.chat.android.models.VideoCallInfo
-import io.getstream.chat.android.models.VideoCallToken
 import io.getstream.chat.android.models.Vote
 import io.getstream.chat.android.models.VotingVisibility
 import io.getstream.result.Error
@@ -852,44 +848,6 @@ public fun randomPollAnswer(
     user = user,
 )
 
-public fun randomVideoCallInfo(
-    callId: String = randomString(),
-    provider: String = randomString(),
-    type: String = randomString(),
-    agoraChannel: AgoraChannel = randomAgoraChannel(),
-    hmsRoom: HMSRoom = randomHMSRoom(),
-    videoCallToken: VideoCallToken = randomVideoCallToken(),
-): VideoCallInfo = VideoCallInfo(
-    callId = callId,
-    provider = provider,
-    type = type,
-    agoraChannel = agoraChannel,
-    hmsRoom = hmsRoom,
-    videoCallToken = videoCallToken,
-)
-
-public fun randomAgoraChannel(
-    channel: String = randomString(),
-): AgoraChannel = AgoraChannel(channel)
-
-public fun randomHMSRoom(
-    roomId: String = randomString(),
-    roomName: String = randomString(),
-): HMSRoom = HMSRoom(
-    roomId = roomId,
-    roomName = roomName,
-)
-
-public fun randomVideoCallToken(
-    token: String = randomString(),
-    agoraUid: Int = randomInt(),
-    agoraAppId: String = randomString(),
-): VideoCallToken = VideoCallToken(
-    token = token,
-    agoraUid = agoraUid,
-    agoraAppId = agoraAppId,
-)
-
 public fun randomQueryThreadsResult(
     threads: List<Thread> = List(positiveRandomInt(5)) { randomThread() },
     prev: String? = randomString(),


Reviews:
user: login: andremion
body: Sweep them out 🧹 
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-22T09:52:11Z
user: login: VelikovPetar
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-22T10:32:09Z
user: login: VelikovPetar
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-30T09:28:40Z

Review comments:
diff_hunk: @@ -25,6 +25,10 @@ import androidx.compose.runtime.Immutable
  * @property agoraUid The Uid of Agora.
  * @property agoraAppId The App Id of Agora.
  */
+@Deprecated(
+    "This third-party library integration is deprecated. Contact to the support team for more information.",
+    level = DeprecationLevel.WARNING,
+)
path: stream-chat-android-core/src/main/java/io/getstream/chat/android/models/VideoCallToken.kt
user: login: VelikovPetar
body: There are also couple more related models: `VideoCallInfo` and `AgoraChannel` - should we deprecate them as well?
created_at: 2025-04-22T10:30:22Z
author_association: CONTRIBUTOR
diff_hunk: @@ -25,6 +25,10 @@ import androidx.compose.runtime.Immutable
  * @property agoraUid The Uid of Agora.
  * @property agoraAppId The App Id of Agora.
  */
+@Deprecated(
+    "This third-party library integration is deprecated. Contact to the support team for more information.",
path: stream-chat-android-core/src/main/java/io/getstream/chat/android/models/VideoCallToken.kt
user: login: VelikovPetar
body: Maybe we could say: "Contact the support team for more information." instead of "Contact to the support team for more information"?  
created_at: 2025-04-22T10:31:27Z
author_association: CONTRIBUTOR

PR comments:
user: login: github-actions[bot]
created_at: 2025-04-22T08:19:22Z
body: 
## SDK Size Comparison 📏

| SDK | Before | After | Difference | Status |
|-|-|-|-|-|
| stream-chat-android-client | 3.16 MB | 3.16 MB | 0.00 MB | 🟢 |
| stream-chat-android-offline | 3.38 MB | 3.38 MB | 0.00 MB | 🟢 |
| stream-chat-android-ui-components | 7.89 MB | 7.89 MB | 0.00 MB | 🟢 |
| stream-chat-android-compose | 9.94 MB | 9.94 MB | 0.00 MB | 🟢 |

author_association: CONTRIBUTOR
user: login: sonarqubecloud[bot]
created_at: 2025-04-30T10:46:09Z
body: ## [![Quality Gate Failed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-failed-20px.png 'Quality Gate Failed')](https://sonarcloud.io/dashboard?id=GetStream_stream-chat-android&pullRequest=5740) **Quality Gate failed**  
Failed conditions  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/failed-16px.png '') [D Maintainability Rating on New Code](https://sonarcloud.io/dashboard?id=GetStream_stream-chat-android&pullRequest=5740) (required ≥ A)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=GetStream_stream-chat-android&pullRequest=5740)

##   
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/light_bulb-16px.png '') Catch issues before they fail your Quality Gate with our IDE extension ![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/sonarlint-16px.png '') [SonarQube for IDE](https://www.sonarsource.com/products/sonarlint/features/connected-mode/?referrer=pull-request)


author_association: NONE