Keyda Business
Sign in Get started free

SDK reference

Every Keyda SDK — Android, iOS, React Native, Flutter, Ionic — implements the same small contract. If you have used one, you have used all of them.

The API

CallWhat it does
init / initializeStores your client id. Validates it and fails loudly if it is malformed.
showPresents the chat over your app.
dismissCloses it.
isShowingWhether it is presented right now.

There is deliberately nothing else. No message-sending API, no unread count, no user identity call — because none of those work end to end yet, and a method that does not work is worse than a missing one.

The URL every SDK opens

{baseUrl}/chat/{clientId}

baseUrl defaults to https://keyda.in/business and is overridable on every platform, for staging or a self-hosted install.

Why a web view, and what it costs you

There is one chat interface, served by the platform, and every surface loads it.

What you get: a change an owner makes in the dashboard — accent colour, welcome message, bot name, going live — reaches every app immediately, with no release. A fix lands everywhere at once. The chat is identical across platforms.

What it costs: the chat needs a connection. There is no offline mode, and there are no push notifications yet.

We would rather you know this before you ship than discover it afterwards.

Guarantees each SDK makes

  1. Navigation escapes. A link to any other origin opens in the system browser instead of replacing the chat. Without this, one tap on a footer link ends a customer's conversation with no way back.
  2. Conversation continuity. DOM storage is on, so a customer who closes the app and comes back finds their thread where they left it (for 24 hours).
  3. The keyboard never covers the input.
  4. Safe areas are respected — no chat drawn under a notch or a home indicator.
  5. No crash reaches your app. A failed load shows a retry.
  6. No analytics, no device identifiers, no third-party dependencies. Adding a Keyda SDK does not add a tracker to your app.

Client id format

kb_live_ followed by 8-48 hexadecimal characters

Anything else is rejected at init rather than opening a 404 in front of a customer. The client id is public by design — it is visible in any website that embeds the widget — and carries no ability to read or change your account. See limits and security.

Source

Public, MIT-licensed: github.com/KeydaAI/keyda-business-sdks. The shared contract every package is held to is in CONTRACT.md at the top of that repo.

Next: Limits and security →