Production Ready

Real-time conversations
powered by AI

Add intelligent chat to your app in minutes. Durable message streams, instant SSE delivery, built-in AI responses with Gemini. Zero infrastructure to manage.

Simple by design

Three endpoints. Full-featured conversations. AI included.

Send a message with AI response
curl -X POST https://api.belha.dev/v1/stream/sessions/chat-123 \ -H "Content-Type: application/json" \ -d '{"role":"client","text":"Hello!","ai":true}'
Stream real-time updates (SSE)
curl -N https://api.belha.dev/v1/stream/sessions/chat-123?live=sse
Upload files for AI analysis
curl -X POST https://api.belha.dev/v1/stream/sessions/support \ -F "role=client" -F "text=What does this error mean?" \ -F "media=@screenshot.png" -F "ai=true"
Embed the chat UI
<iframe src="https://api.belha.dev/s/chat-123" style="width:100%;height:500px;border:none"/>

Everything you need

Built for production. Designed for developers.

Real-time Streaming

Messages delivered instantly via Server-Sent Events. No polling, no WebSocket complexity.

AI-Powered Responses

Built-in Gemini AI via Vertex AI. Multi-turn context, image analysis, document understanding.

Durable Storage

Messages persist in Google Cloud Storage. Never lose data. Resume from any offset.

Media Understanding

Upload images, PDFs, documents, and code files. AI analyzes them in context.

Resumable Streams

Disconnect and reconnect without missing messages. Offset tokens for perfect resume.

Multi-Participant

Multiple users in the same conversation. Clients, agents, and AI together.

TypeScript SDK

First-class SDK for modern apps

Built for TanStack Start, Next.js, and any React framework. Real-time subscriptions, type safety, and seamless integration.

  • Zero-config SSE with auto-reconnect
  • Built-in AI: askAI(), sendWithMedia()
  • React Query compatible
  • Full TypeScript types
View SDK on GitHub
npm install @belha/sdk
import { BelhaChat } from '@belha/sdk'; const chat = new BelhaChat('session-123', { onMessage: (msg) => console.log(msg.text), onConnect: () => setStatus('live'), }); chat.connect(); await chat.askAI('How do I reset my password?'); await chat.sendWithMedia( 'What does this error mean?', [screenshotFile], { ai: true } );
Powered by Gemini

AI that understands context

Multi-turn conversations with full history awareness. The AI remembers previous messages and analyzes uploaded files.

Multi-turn Context

Last 20 messages for coherent conversations

Image Analysis

JPG, PNG, GIF, WebP, HEIC support

Document Analysis

PDF, TXT, Markdown, JSON, CSV

Code Review

Python, Go, JS, TS, Java, Rust

Production-grade infrastructure

Deployed on Google Cloud Run with automatic scaling.

Runtime
Cloud Run
Auto-scaling containers
Storage
Cloud Storage
GCS FUSE volumes
AI
Vertex AI
Gemini 3 Flash
Region
Europe West
GDPR compliant

Built for real products

From customer support to live collaboration.

Customer Support

Hybrid AI + human support. AI handles common questions, escalates complex issues.

Ticketing Live Chat AI Triage

Document Analysis

Upload contracts, reports, or code for AI-powered analysis and summarization.

PDF Review Code Review Summaries

Real-time Notifications

Push alerts and updates to users. SSE ensures instant delivery everywhere.

Alerts Activity Feed Updates

Complete REST API

Standard HTTP endpoints that work with any language or framework.

MethodEndpointDescription
PUT/v1/stream/sessions/{id}Create conversation
POST/v1/stream/sessions/{id}Send message (with optional AI)
GET/v1/stream/sessions/{id}Read messages (supports SSE)
DELETE/v1/stream/sessions/{id}Delete conversation
GET/media/{filename}Get uploaded media
GET/s/{id}Embeddable chat UI

Ready to build?

Start building real-time conversations with AI in minutes. No credit card required.