QuickBlox JavaScript SDK

Build fast, scalable, and AI-powered chat on the web.

QuickBlox’s JavaScript SDK helps you integrate real-time messaging, voice/video calling, and smart AI chat into any web application. Designed for flexibility and speed, it’s a powerful SDK for both browser and cross-platform apps.

JavaScript SDK header image

Core Capabilities at a Glance

Everything you need to add real-time communication to your web app.

Core Capabilities
In-App Cha imageIn-Browser Chat

Enable 1-on-1 and group messaging with typing indicators, file sharing, and message history—all within the browser.

Voice & Video Calls imageVoice & Video Calls

Add crystal-clear WebRTC-based calling to connect users instantly in-browser—no downloads required.

Push Notifications image User Authentication

Ensure only authorized users can log in and stay connected safely.

Smarter Communication with AI

QuickBlox’s JavaScript SDK comes with built-in AI tools to enhance how users chat and engage—right from the web interface.

QuickBlox Android AI Answer Assist

Answer Assist

Offers contextual reply suggestions to speed up response time and improve communication flow.

QuickBlox Android AI Translate

Translate

Translates messages in real-time between languages to support a global user base.

QuickBlox Android AI Rephrase

Rephrase

Lets users rewrite messages to better match tone or clarity, ideal for support or sensitive use cases.

QuickBlox Android AI Chat Assistant

AI Assistants

Add smart assistants for onboarding, support, scheduling, and more—directly into your web chat flow.

No third-party AI integrations needed. Everything runs natively through QuickBlox’s platform.

UI Kit for Web — Ready-to-Use Chat Components

Speed up development with QuickBlox’s customizable UI components for React based front ends

Android UI Kit image
  • Dialogs & Navigation:

    Manage ongoing chats with message previews, timestamps, and unread markers.

  • Rich Media Support:

    Effortlessly send or receive text, images, audio, video, and document attachments.

  • Delivery Feedback:

    Real-time indicators show when messages are being typed, sent, delivered, and read.

  • Voice & Link Previews:

    Enhance interaction with voice messages and automatic link rendering.

  • Configurable UI Actions:

    Tailor message behavior, theming, and shortcuts for your brand experience.

Launch quickly without compromising UX or flexibility.

Ready to Build Chat?

Supercharge your web app with real-time chat, voice, and video using our developer-friendly JavaScript SDK.

No credit card needed. Start integrating in minutes

Ready to Build Chat?

Why Use QuickBlox
JavaScript SDK?

Fast to Integrate imageQuick to Integrate

Lightweight SDK, well-documented APIs, and rapid setup via npm.

Modular & Scalable imageFlexible & Cross-Platform

Use with web, hybrid apps, or frameworks like React and Angular.

HIPAA-Ready & Secure imageBuilt for Compliance

End-to-end encryption and hosting options that meet HIPAA and enterprise security standards.

Why Use QuickBlox Android SDK?

Quick Start in 60 Seconds

Step 1

Sign up for a free QuickBlox account

Step 2

Create your app and copy the credentials

Step 3

Install the SDK using npm

Step 5

Send your first message!

Step 4

Initialize and connect the SDK


                                        import React, { useEffect } from 'react';
// @ts-ignore
import * as QB from "quickblox/quickblox";
import {
  QuickBloxUIKitProvider,
  qbDataContext,
  QuickBloxUIKitDesktopLayout, LoginData, AuthorizationData, QBDataContextType,
} from 'quickblox-react-ui-kit';
import { QBConfig } from './QBconfig';
import './App.css';

function App() {

  const currentUser: LoginData = {
    login: '',
    password: '',
  };

  const qbUIKitContext: QBDataContextType = React.useContext(qbDataContext);

  const [isUserAuthorized, setUserAuthorized] = React.useState(false);
  const [isSDKInitialized, setSDKInitialized] = React.useState(false);

  const prepareSDK = async (): Promise<void> => {
    // check if we have installed SDK
    if ((window as any).QB === undefined) {
      if (QB !== undefined) {
        (window as any).QB = QB;
      } else {
        let QBLib = require('quickblox/quickblox.min');
        (window as any).QB = QBLib;
      }
    }

    const APPLICATION_ID = QBConfig.credentials.appId;
    const AUTH_KEY = QBConfig.credentials.authKey;
    const AUTH_SECRET = QBConfig.credentials.authSecret;
    const ACCOUNT_KEY = QBConfig.credentials.accountKey;
    const CONFIG = QBConfig.appConfig;

    QB.init(APPLICATION_ID, AUTH_KEY, AUTH_SECRET, ACCOUNT_KEY, CONFIG);

  };

  useEffect(() => {
    if (!isSDKInitialized) {
      prepareSDK().then(result => {

        QB.createSession(currentUser, async function (errorCreateSession: any, session: any) {
          if (errorCreateSession) {
            console.log('Create User Session has error:', JSON.stringify(errorCreateSession));
          } else {
            const userId: number = session.user_id;
            const password: string = session.token;
            const paramsConnect = { userId, password };

            QB.chat.connect(paramsConnect, async function (errorConnect: any, resultConnect: any) {
              if (errorConnect) {
                console.log('Can not connect to chat server: ', errorConnect);
              } else {
                const authData: AuthorizationData = {
                  userId: userId,
                  password: password,
                  userName: currentUser.login,
                  sessionToken: session.token
                };
                await qbUIKitContext.authorize(authData);
                setSDKInitialized(true);
                setUserAuthorized(true);
              }
            });
          }
        });
      }).catch(
          e => {
            console.log('init SDK has error: ', e)
          });
    }
  }, []);

  return (
      <div>
        <QuickBloxUIKitProvider
            maxFileSize={100 * 1000000}
            accountData={{ ...QBConfig.credentials }}
            qbConfig={{ ...QBConfig }}
            loginData={{
              login: currentUser.login,
              password: currentUser.password,
            }}
        >
          <div className="App">
            {
              // React states indicating the ability to render UI
              isSDKInitialized && isUserAuthorized
                  ?
                  <QuickBloxUIKitDesktopLayout />
                  :
                  <div>wait while SDK is initializing...</div>
            }
          </div>
        </QuickBloxUIKitProvider>
      </div>
  );
}

export default App;									                                   
									

What You Can Build

  • Telehealth portals with secure browser-based consultations
  • Customer support widgets with live agents and AI assistance
  • E-learning platforms with group chat and virtual classrooms
  • Marketplace websites with buyer-seller chat and file sharing
flutter sdk image

SDK Feature Modules

Feature Description
Authentication image

Authentication

User login, sign-up, and session contro

Chat image

Chat

Real-time messaging with rich media

Voice & Video image

Voice & Video

WebRTC browser-based calling

Push Notifications image

Push Notifications

Supports sending mobile push notifications

User Management image

User Management

Profile setup and contact management

Content image

Content

File, image, and audio uploads

Custom Objects image

Custom Objects

Store structured app data

Address Book Sync image

Address Book

Discover and manage user connections

Built for Web Developers

Sample App

Try a working web chat demo with source code

View on GitHub

Documentation & API

Step-by-step instructions and API references

View Docs

Enterprise-Ready

Whether you’re building a secure healthcare portal or a global messaging app, QuickBlox has you covered.

HIPAA-compliant hosting available image

HIPAA-compliant hosting
and data handling

Self-hosted or cloud deployment image

Cloud or self-hosted
deployment options

Priority support, onboarding, and SLAs image

Enterprise onboarding,
SLAs, and 24/7 support

Priority support, onboarding, and SLAs image

Proven scalability for
high-traffic apps

Additional Resources

Ready to Get Started?

Add chat, voice, video, and AI into your web app today.

FAQs: JavaScript SDK

Can I build chat using JavaScript with QuickBlox?

Yes. If you need chat using JavaScript, the SDK gives you the building blocks to add it directly into a web app. It handles the basics like connections and message delivery so you don’t have to piece everything together yourself.

What is a JavaScript chat application?

A JavaScript chat application is simply a web app that lets users exchange messages in real time. With QuickBlox, you can implement group chat, file sharing, typing indicators, and message history without building everything from scratch.

Does QuickBlox provide a JavaScript chat library or scripts?

Yes. The SDK functions as a JavaScript chat library and comes with practical examples. You’ll find JavaScript chat scripts and sample JavaScript chat code in our documentation and GitHub repository, which you can adapt for your own projects.

What is JavaScript live chat?

JavaScript live chat is just real-time messaging added into your website or app. With QuickBlox, you can set it up so users can talk instantly — useful for support teams, online classes, or marketplaces where people need quick answers.

Does the SDK include a JavaScript chat API?

Yes, it includes a complete JavaScript chat API. This lets you send and receive messages, manage group conversations, retrieve history, and customize how chat works in your application.