White label video solution
Automate workflows and conversations
White label messaging app
White label telehealth
HIPAA-compliant AI medical assistant
Tools to build your own HIPAA telehealth app
Secure hosting with encryption and BAA
QuickBlox Discord
Community
A chat API and a messaging SDK are both ways to add real-time messaging to your application — but they operate at different layers of the stack, serve different integration scenarios, and are often used together rather than instead of each other.
In simple terms, a chat API handles server-side messaging operations through HTTP requests; a messaging SDK packages those capabilities into platform-specific client libraries your development team integrates directly into your application.
At QuickBlox, we offer both — a REST API for server-side and server-to-server integrations and SDKs for client-side development across iOS, Android, web, React Native, and Flutter. The guidance on this page reflects what we see when developers are working out which to use, when to use both, and what drives that decision in practice.
Before comparing them it helps to be precise about what each term describes — because both get used loosely in ways that obscure the real distinction.
A chat API, in the technical sense, is a server-side interface. It exposes HTTP endpoints your application calls to trigger messaging operations — creating conversations, sending messages, retrieving message history, managing users, handling push notifications. It follows REST principles: your application makes an HTTP request, the API returns a JSON response. It is platform-agnostic — any language or environment that can make an HTTP request can call it.
A messaging SDK — also commonly called a chat SDK, and we use both terms interchangeably on this page — is a client-side implementation layer. It packages the API calls, WebSocket connection management, authentication flows, and UI components into libraries built specifically for a target platform. Instead of writing HTTP requests and handling responses manually, your development team works with higher-level objects and methods designed for that platform’s development environment. The SDK handles the connection management and real-time delivery layer underneath.
The REST API is the right integration layer in three specific scenarios:
When your backend needs to interact with the messaging infrastructure directly — sending automated messages, managing users programmatically, triggering notifications from server-side events — the REST API is the appropriate tool. The SDK is designed for client applications running on user devices, not for server-side logic.
QuickBlox SDKs support iOS (Swift and Objective-C), Android (Java and Kotlin), JavaScript (popular libraries like ReactJS and Angular, Node.js for chatbots), React Native and Flutter. If your backend is built in Python, Ruby, PHP, Go, .NET, or another server-side language, the REST API is how you integrate QuickBlox functionality into that environment.
Teams that need granular control over messaging operations at the server level — custom message routing logic, automated conversation management, integration with proprietary backend systems — work directly with the REST API to build those workflows without the abstraction layer the SDK introduces.
What the API does not provide: real-time delivery to client devices, WebSocket connection management, UI components, or platform-specific implementation. Those are the SDK’s job.
The SDK is the right integration layer for client-side development on supported platforms — and for most development teams building user-facing applications, it’s where the majority of the integration work happens.
If you’re building an iOS, Android, or web application and need to embed messaging into the user-facing product, the SDK gives you the complete client-side layer: WebSocket connection management, real-time message delivery, UI components, push notification handling, offline sync, and platform-specific optimisations. Building that layer manually on top of the REST API alone would require significant custom development.
The SDK handles connection setup, authentication flows, WebSocket management, and real-time delivery mechanics that developers would otherwise have to write manually. Developers we work with consistently report that SDK-based integrations reach a working implementation significantly faster than API-only approaches for client-side use cases.
QuickBlox SDKs are available for iOS, Android, JavaScript, React Native, and Flutter — maintaining consistent messaging behavior across platforms without requiring separate implementations for each.
What the SDK does not replace: server-side operations. Those still go through the REST API regardless of how the client-side implementation is handled.
Most production messaging implementations use both layers simultaneously. The REST API handles server-side operations; the SDK handles client-side implementation. Understanding how they divide responsibility is what makes the architecture clear.
| Operation | Layer | Why |
| User authentication and session management | REST API | Server-side operation — your backend authenticates users and manages sessions |
| Sending automated or system-generated messages | REST API | No client device involved — server triggers the message directly |
| Managing users, roles, and permissions | REST API | Administrative operations handled server-side |
| Push notification configuration and triggering | REST API | Server-side event triggers client notification |
| Real-time message delivery to client devices | SDK | WebSocket connection managed by the SDK on the user’s device |
| UI components — message input, conversation list, bubbles | SDK | Platform-specific client-side implementation |
| Offline sync and message queuing on client | SDK | Device-level state management |
| File and media sharing from client device | SDK | Client-side capture and upload |
| Typing indicators and read receipts | SDK | Real-time client-side state |
The two layers aren’t competing — they’re handling genuinely different parts of the same system. The more useful question isn’t ‘API or SDK?’ but ‘which operations in my application are server-side and which are client-side?
“The SDK is just a wrapper around the API — I can use either one for everything.” Partially true and mostly misleading. The SDK does use the API underneath, but it adds a substantial client-side layer on top — WebSocket connection management, real-time delivery, UI components, offline handling, platform-specific optimisations — that the REST API alone doesn’t provide. Using the REST API for client-side implementation means building all of that yourself. For server-side operations, the REST API is the right tool regardless of what the SDK provides.
“If I use the SDK I don’t need to think about the API.” Not quite. Server-side operations — automated messages, user management, backend integrations — go through the REST API even when the client-side implementation uses the SDK. Most production applications have both in use simultaneously. Understanding where the boundary sits saves a lot of confusion during architecture planning.
Rather than thinking about API vs SDK as a binary choice, the cleaner frame is matching the tool to the integration scenario:
| Scenario | Right tool |
| Building a client-side chat interface on iOS, Android, or web | SDK |
| Server-to-server integration or backend automation | REST API |
| Backend in Python, Ruby, PHP, Go, .NET, or other unsupported language | REST API |
| Real-time message delivery and WebSocket management | SDK |
| Automated messaging triggered by server-side events | REST API |
| UI components and platform-specific implementation | SDK |
| Custom server-side message routing or workflow logic | REST API |
| Cross-platform client implementation (React Native, Flutter) | SDK |
| Most production applications | Both |
The API vs SDK question is one of the earlier architectural decisions a development team makes, and it’s worth getting right before the integration is underway rather than discovering mid-build that the wrong layer is handling the wrong operations.
What we see most often: teams default to one or the other based on familiarity rather than use case fit. Backend-heavy teams reach for the REST API and end up building client-side functionality from scratch that the SDK would have handled. Frontend-focused teams lean on the SDK and don’t account for the server-side operations their application will eventually need.
The cleaner starting point: map your application’s messaging operations to server-side and client-side categories first. Server-side operations — automation, user management, backend integrations, unsupported languages — go through the REST API. Client-side operations — real-time delivery, UI, offline sync, platform-specific implementation — go through the SDK. Most production deployments end up using both, and that’s by design rather than by accident.
QuickBlox provides both layers — a REST API for server-side and server-to-server integrations, and SDKs for iOS, Android, JavaScript, React Native, and Flutter — designed to work together as a complete messaging infrastructure.
Explore QuickBlox Chat API or browse the full QuickBlox SDK documentation to see how both layers fit into your specific integration.
A chat API is a server-side REST interface — HTTP endpoints your application or backend calls to trigger messaging operations. A messaging SDK is a client-side implementation layer — platform-specific libraries that handle real-time delivery, WebSocket connection management, UI components, and platform-specific optimizations on a user's device. Most production messaging implementations use both.
Use the REST API for server-to-server integrations, backend automation, server-side messaging operations, or when your backend language isn't supported by the available SDKs. QuickBlox SDKs support iOS, Android, JavaScript, React Native, Flutter, and Cordova — for other languages, the REST API is the integration path.
For server-side operations, yes. For client-side implementation — real-time delivery, UI components, WebSocket management, offline sync — you would need to build significant custom infrastructure on top of the REST API alone. For client-side development on supported platforms, the SDK is the more practical path.
Yes. Server-side operations go through the REST API; client-side implementation uses the SDK. The two layers handle genuinely different parts of the messaging stack and are designed to work together rather than as alternatives.
iOS (Swift and Objective-C), Android (Java and Kotlin), JavaScript (web, Node.js, Cordova), React Native, and Flutter.
The SDK uses the API underneath, but it adds a substantial client-side layer — WebSocket connection management, real-time delivery, UI components, offline handling, and platform-specific optimizations — that the REST API alone doesn't provide. For client-side use cases, the SDK is significantly more than a wrapper.
For most client-side applications, developers start with the SDK because it provides real-time delivery, UI components, and connection management out of the box. The REST API typically becomes part of the architecture when backend automation, user management, integrations, or server-side workflows are required.
Last reviewed: June 2026
Written by: Gail M.
Reviewed by: QuickBlox Product & Platform Team