Sendsar

Early access · Headless Chat API

In-app chat for platforms that already exist

Add two-party messaging to your product without replacing auth, users, or UI. Your IDs, your login, our real-time engine. APIs and SDKs for your stack — your IDs, your login, our real-time engine.

We're onboarding early partners personally — reach out by email or Telegram while we scale hosted infrastructure.

server.ts
// Your server — API key stays here
const { token } = await fetch(`${API_URL}/v1/auth/token`, {
  method: "POST",
  headers: { "x-api-key": process.env.SENDSAR_API_KEY },
  body: JSON.stringify({
    userId: user.id,
    displayName: user.name,
  }),
}).then((r) => r.json());

// Client connects with short-lived JWT
await client.connect(token);

01

Your app

Existing users & auth

02

Your server

Issues session JWT

03

Sendsar

Rooms & delivery

04

Your UI

Headless — you design it

Built for platform teams

7ms
Typical API response
Headless
Your UI, our engine
2-party
Native room model
Early access
Onboarding now

Core products

The headless stack for every conversation

Modular building blocks — start with two-party messaging, add calls when you need them. Your auth, your UI, our delivery engine.

Core

Headless messaging API

Rooms, messages, delivery, and presence — mapped to your user IDs and business objects. No parallel user directory.

  • 1:1 and group rooms
  • Typing & read receipts
  • Reactions & media
  • REST + WebSocket
Platform

Real-time infrastructure

Multi-tenant gateway with session JWTs, webhooks, and optional voice/video when your workflow needs more than text.

  • Session JWT from your server
  • Webhooks for automations
  • Multi-tenant isolation
  • Optional LiveKit calls

How it works

Three steps. No platform swap.

Most chat SDKs expect a greenfield build. Sendsar is built for the opposite — platforms that already ship.

01

Keep your user system

Sendsar maps to your existing user IDs. No parallel user directory, no auth migration, no SSO rebuild.

02

Issue sessions from your server

Your backend holds the API key and mints short-lived JWTs. Clients never see secrets — same pattern you already trust.

03

Ship your own UI

We deliver rooms, messages, and real-time events. You render the chat experience inside your product's design system.

Platform features

Powerful by default

Infrastructure for delivery and state — not a design system you have to adopt wholesale.

Rooms & messages
Create scoped conversations mapped to your business objects.
Real-time delivery
WebSocket transport with REST fallbacks for server workflows.
Presence & typing
Online status and typing signals without extra infrastructure.
Session JWTs
Short-lived client tokens minted by your backend — keys never exposed.
Multi-tenant
Isolate customers, brands, or environments on one backend.
Webhooks
React to message events in your own services and automations.
Reactions & receipts
Modern chat primitives without bolting on a full UI framework.
Voice & video
Optional calls via LiveKit when your workflow needs more than text.

Use cases

Two-party workflows, native to your product

Driver ↔ passenger

On-demand marketplaces

Trip-scoped rooms tied to order IDs. Chat opens when a match happens — no separate messaging app.

Account ↔ vendor

B2B SaaS platforms

Let customers talk to suppliers or support inside your dashboard, using the accounts you already manage.

Client ↔ provider

Service marketplaces

Booking-based conversations with your auth layer intact. Add chat without adopting someone else's UI kit.

Early access

Contact us to get started

We're onboarding early partners personally — no hosted tiers live yet. Email or Telegram and we'll share docs, sandbox access, and pricing when you're ready to ship.

noeurnnneang@gmail.com

Developer experience

Built for backend teams first

Start with the API, add SDKs where they help. Docs, webhooks, and session flows are designed around how platform engineers actually integrate — reach out when you want help wiring it up.

JavaScriptReactFlutterRESTWebSocketNode.js

webhook payload

{
  "type": "message.created",
  "tenantId": "acme",
  "roomId": "order_8f2a",
  "senderId": "user_42",   // your ID
  "body": "Driver is 2 min away"
}

Why Sendsar

Headless means you stay in control

If adding chat feels like bolting on someone else's product, you probably need infrastructure — not another app inside your app.

Typical chat SDK

Sendsar

Adopt our UI kit and user model

Keep your UI and map our rooms to your user IDs

Rebuild auth around our SDK

Mint session JWTs from the server you already run

Ship a full communication suite on day one

Start with two-party messaging, add calls when needed