Hosted chat for your product

Chat for your product. Yours to move.

Conversations, realtime, webhooks, calls and media behind one API. Start free on qux.chat. It is QuxCloud’s own API, so when you outgrow it, moving changes a base URL and nothing else.

  • 1,000 monthly active users free
  • Sign in with QuxCloud
  • No socket to run
import { ChatClient } from '@quxkit/chat';

// On your server. The key is your workspace: never ship it to a browser.
const chat = new ChatClient({
  apiKey: process.env.QUXCHAT_API_KEY!,
  baseUrl: 'https://qux.chat/api/chat',
});

const convo = await chat.conversations.create({
  kind: 'support',
  createdBy: 'agent:sam',
  participants: [
    { actorId: 'agent:sam', displayName: 'Sam', role: 'admin' },
    { actorId: 'customer:ada', displayName: 'Ada' },
  ],
});

await chat.messages.send(convo.id, {
  body: 'Your order just shipped.',
  senderActorId: 'agent:sam',
  idempotencyKey: 'ship-1042',
});

The @quxkit/chat SDK on your server. The REST API is the same calls.

What you get

The chat backend, done. You build the screen.

Conversations and messages

Create conversations with participants and roles, send with an idempotency key, page history, mark read. One REST API, typed by the SDK.

Realtime, without a socket to run

A gap-free event feed you long-poll with a cursor, and a server-sent event stream. Nothing is missed between two reads.

Signed webhooks

Every message and event delivered to your endpoint, signed, retried, and verifiable with one call in the SDK.

Voice and video calls

One-to-one and group calls through an SFU, with a lobby where guests knock and someone inside lets them in.

Media

Uploads straight to storage on a presigned link, checked on completion, attached to a message by id.

Isolation the database enforces

A key is its workspace. Every query runs under row-level security keyed to it, so a forgotten filter returns nothing, never another customer’s conversation.

The way out is a base URL

Start here. Grow into QuxCloud.

qux.chat runs QuxCloud’s chat API on its own platform: the same routes, the same `qcx` keys, the same data model and the same plans. Nothing you write is specific to qux.chat.

One-click move: next release
  1. Your conversations, members, webhooks and plan copy to a QuxCloud workspace.
  2. Your keys keep working there, unchanged.
  3. Point the SDK at QuxCloud when it suits you. Until then, qux.chat forwards.

Pricing

Free for a thousand users. Then pay for what you use.

The same prices as QuxCloud Chat, so a plan means the same thing on both. Free stops at its limits instead of billing you.

  • Free

    $0forever

    A real chat backend for a whole product, free — more headroom than anyone else gives away.

    • 1,000 monthly active users
    • 100,000 messages a month
    • Stops at its limits, never bills
    • REST API, realtime, webhooks, calls and media
    Start free
  • Starter

    $29per month

    For a product finding its feet. Five thousand active users included, then a fraction of a cent each.

    • 5,000 monthly active users
    • 1,000,000 messages a month
    • Then $0.015 / MAU and $0.30 / 1k
    • REST API, realtime, webhooks, calls and media
    Choose Starter
  • Pro

    $99per month

    For a product at scale. Twenty-five thousand active users included and cheaper overage.

    • 25,000 monthly active users
    • 5,000,000 messages a month
    • Then $0.010 / MAU and $0.20 / 1k
    • REST API, realtime, webhooks, calls and media
    Choose Pro
  • Scale

    $299per month

    Chat at real volume — a hundred thousand active users included, and the cheapest overage on the ladder.

    • 100,000 monthly active users
    • 25,000,000 messages a month
    • Then $0.006 / MAU and $0.15 / 1k
    • REST API, realtime, webhooks, calls and media
    Choose Scale
  • Enterprise

    Custom

    Dedicated tenancy, SSO and SCIM over identity-kit, an SLA, and volume pricing.

    • Custom monthly active users
    • Custom messages a month
    • REST API, realtime, webhooks, calls and media
    Talk to us

Questions

What people ask first.

What is qux.chat?

A hosted chat backend: conversations, messages, realtime, webhooks, calls and media for your own product, behind a REST API and the @quxkit/chat SDK. You build the interface; qux.chat keeps the conversations.

How do I sign in?

With your QuxCloud account. qux.chat holds no passwords: it signs you in through QuxCloud, so one account works across the QuxKit family.

How is it different from QuxCloud Chat?

It is the same API, the same key format and the same data model, run as its own platform with its own database. QuxCloud adds everything else QuxKit hosts. Your code does not change between the two; only the base URL does.

Can I move my workspace to QuxCloud later?

That is what it is built for. Because the API, keys and data are QuxCloud’s own, a workspace copies across whole: conversations, members, webhooks, plan and keys. The one-click move is the next thing we ship.

Can a browser call the API?

Not with your key. A key is your whole workspace, so it stays on your server, and the API sends no CORS headers. Browsers reach qux.chat through your server, which adds the key and decides who the user is.

What happens when I reach the Free plan’s limits?

Free stops at its limits rather than billing you: 1,000 monthly active users and 100,000 messages a month. Paid plans include more and price what goes past it.

Your first conversation, in a few minutes.

Sign in with QuxCloud, make a key in the console, and send a message from your server.

Start free