Kotlin Data API

The Kotlin Data API lets you connect to TalkJS as a user and read, subscribe to, and update chat data from Kotlin-based environments. It's available through the TalkJS Core (com.talkjs:core) package on Maven Central.

The Data API is primarily intended for client environments such as Android apps, because it connects as a single specific user.

If you need server-side access to all conversations or users, use the REST API instead.

Multi-platform support

The Kotlin Data API is multi-platform, with support for Android and JVM environments currently available, and iOS support coming in a future update.

Requirements

To use the Kotlin Data API, your project needs to have the following:

  • Kotlin 2.0+
  • For Android apps: Android API 24+
  • For JVM environments: Java 11+

Installation

To add the TalkJS Core package to your project, include the following in your build.gradle.kts file:

1dependencies {
2 implementation("com.talkjs:core:<latest_version>")
3}

Replace <latest_version> with the latest available version, for example 0.1.0. You can check Maven Central for the latest version.

Create a TalkJS session

The Kotlin Data API is available under the com.talkjs.core package namespace.

To connect as a user, create a TalkJS session using getTalkSession:

1import com.talkjs.core.TalkSessionOptions
2import com.talkjs.core.getTalkSession
3
4val session = getTalkSession(
5 TalkSessionOptions(
6 appId = "<APP_ID>", // Replace with your own app ID
7 userId = "<USER_ID>", // Replace with a user ID
8 )
9)

Replace:

  • <APP_ID> with your TalkJS app ID. You can find your app ID on the Settings page of your TalkJS dashboard.
  • <USER_ID> with the ID of the user you want to connect as.

Once connected, the session allows you to retrieve conversations, send messages, and subscribe to real-time updates.

Android permissions

To use TalkJS in your app, it must have permission to access the internet. In your AndroidManifest.xml file, make sure the following line is present:

1<uses-permission android:name="android.permission.INTERNET" />

This is required for TalkJS to connect to the TalkJS servers.