> ## Documentation Index
> Fetch the complete documentation index at: https://docs.support.onclarity.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SDKs overview

> Add Clarity support chat to your website or mobile app, and find the ids each SDK needs.

Clarity's support chat runs on your website and inside your mobile apps. Customers talk to your AI agents and your team in the same conversation, and every conversation lands in your Clarity inbox as a ticket.

## Choose an SDK

| Platform | What you install | Distribution |
| - | - | - |
| Website | Web chat widget (a `<script>` snippet) | Copied from the cabinet |
| Android | `com.onclarity:clarity-android-sdk` | Maven Central |
| iOS | `ClaritySDK` | Swift Package Manager or CocoaPods |
| Flutter | `onclarity` | pub.dev |

> **[Web chat widget](/sdks/web-widget.md)**
>
> Paste one snippet into your site. Open the chat from your own buttons and identify signed-in visitors.

> **[Android](/sdks/android.md)**
>
> Native bottom sheet or full-screen chat for Android 5.0 and later, with FCM push routing.

> **[iOS](/sdks/ios.md)**
>
> Native bottom sheet or full-screen chat for iOS 15 and later, with APNs push routing.

> **[Flutter](/sdks/flutter.md)**
>
> One Dart API over the Android and iOS SDKs.

The mobile SDKs show the same chat as the web widget, in a native container over your app. The chat's look and texts come from the same widget settings, so you configure them once.

## The ids you need

Every SDK needs the same small set of values. They identify your organization and channel. They are not secrets, so you can ship them in your page source or app binary.

| Value | Web widget | Mobile SDKs |
| - | - | - |
| Organization ID | `organizationId` | `organizationId` |
| Integration key | `integrationKey` | `integrationKey` (Flutter: one per platform) |
| Live chat host | Already in the snippet | `baseUrl`: `https://live-chat.leap.onclarity.com` |
| Domain or App ID | The **Domain Address** of the web channel must match your site | The channel's **App ID** must match your app's `applicationId` (Android) or bundle identifier (iOS) |

Each website domain and each mobile app is its own channel, with its own integration key.

### Where to find them in the cabinet

**Website**

**1. Open Live chat**

Go to **Settings** and, under **Channels**, open **Live chat**.

**2. Add a web integration**

Click **Add Integration** and enter your site's **Domain Address**, without `https://` and without a path. Choose **Live chat** as the widget and click **Add web integration**.

**3. Copy the values**

The **Integration info** dialog shows the **Integration Key**, the **Organization Id** and the **Inject code** snippet with both already filled in.

**Mobile app**

**1. Open Mobile SDK**

Go to **Settings** and, under **Channels**, open **Mobile SDK**.

**2. Add a mobile application**

Click **Add Integration**. Pick **Android**, **iOS** or **Flutter** and enter the **App ID**: your `applicationId` on Android, your bundle identifier on iOS. A Flutter app needs both. For an AppGallery build, check **My mobile is Huawei**. Click **Add integration**.

**3. Copy the values**

The **Integration info** dialog shows the **Organization Id**, the integration key and a setup guide with your values filled in.

## Identify signed-in users

Every SDK lets you pass who the customer is: an external id from your own system, a name, an email and custom attributes. On its own, that identity is a claim the page or app makes about itself.

To have Clarity trust it, your backend signs a short-lived token (a JWT) with the channel's **identity secret**, and the widget or SDK passes it along. The secret is in each channel's integration dialog, under **Identity verification**. [Signed identity](/sdks/web-widget.md#verify-the-visitor-signed-identity) explains how to mint the token. The rules are the same for the web widget and the mobile SDKs.

| SDK | Signed identity |
| - | - |
| Web widget | `userJwt` |
| Android | `ClarityUser.jwt` |
| iOS | `ClarityUser.jwt`, in the release after 1.3.0 |
| Flutter | Not available yet |

> [!WARNING]
>
> The identity secret must stay on your server. Never put it in your website's code or in a mobile app.

## Customize the chat

**Settings > Widget** controls what customers see in every channel: brand colours, logos and font, the home screen texts, the assistant's name and greeting, starter questions and the expanded window size. Changes go to a draft first and reach customers when you click **Publish**.

Per-channel switches are in each channel's integration dialog: voice calling, dictation, the Inbox tab, opening straight into the conversation and, for the web widget, whether your page can open and close the chat.


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