---
url: https://talkjs.com/docs/Data_APIs/Flutter
---

# Flutter Data API

Ask a question Copy for LLM [View as Markdown](/docs/Data_APIs/Flutter.md)
The Flutter Data API lets you connect to TalkJS as a user and read, subscribe to, and update chat data from Flutter-based environments. It's available through the `talkjs_core_flutter` package on [pub.dev](https://pub.dev/packages/talkjs_core_flutter).

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

If you need server-side access to all conversations or users, use the [REST API](/docs/REST_API/) instead.

## Platform support

The Flutter Data API currently only supports Android.

iOS support is coming in a future update.

## Requirements

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

- Dart 3.11.0+
- Flutter 3.3.0+
- For Android apps: Android API 24+

## Installation

To add the TalkJS Core Flutter package to your project, run:

```sh
flutter pub add talkjs_core_flutter
```

## Create a TalkJS session

To connect as a user, create a TalkJS session using [getTalkSession](/docs/Data_APIs/Flutter/TalkSession/):

```dart
import 'package:talkjs_core_flutter/talkjs_core_flutter.dart';

final session = await getTalkSession(
  TalkSessionOptions(
    appId: '<APP_ID>', // Replace with your own app ID
    userId: '<USER_ID>', // Replace with a user ID
  ),
);
```

Replace:

- `<APP_ID>` with your TalkJS app ID. You can find your app ID on the **Settings** page of your [TalkJS dashboard](/dashboard/).
- `<USER_ID>` with the [ID of the user](/docs/Concepts/Users/#user-id) 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:

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

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