The most private, embeddable voice calling modal in the world. Zero logs, true E2EE, HIPAA-compliant infrastructure.
Perfect for: Office hours, team channels, community spaces
<div id="liquid-room"></div>
<script src="https://sdk.liquidcalling.com/sdk.js"></script>
<script>
LiquidCalling.init({
roomId: "support-office", // Fixed ID - everyone joins same room
apiKey: "your-api-key"
});
</script>Perfect for: Games, support tickets, consultations, temporary meetings
<div id="liquid-room"></div>
<script src="https://sdk.liquidcalling.com/sdk.js"></script>
<script>
// Get session ID from your app (URL param, database, state, etc.)
const sessionId = new URLSearchParams(window.location.search).get('session');
LiquidCalling.init({
roomId: `session-${sessionId}`, // Dynamic ID based on context
apiKey: "your-api-key"
});
</script>The roomId determines which users can talk together. Think of it as a unique identifier for each conversation space.
// Generate unique ID for each session
const sessionId = `room-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
LiquidCalling.init({
roomId: sessionId, // e.g., "room-1732067890-k3j9x2"
apiKey: "your-api-key"
});Use cases: Multi-player games, temporary support sessions, one-time consultations
// Use a fixed room ID
LiquidCalling.init({
roomId: "support-team-alpha", // Same ID every time
apiKey: "your-api-key"
});Use cases: Persistent team channels, office hours, community spaces
Key principle: Same roomId = users join together. Different roomId = separate conversations.
// Control methods
LiquidCalling.joinCall() // Programmatically join
LiquidCalling.leaveCall() // Programmatically leave
LiquidCalling.mute() // Mute microphone
LiquidCalling.unmute() // Unmute microphone
LiquidCalling.endCall() // End the call
LiquidCalling.setVolume(0.8) // Set volume (0-1)
// Event handlers
onReady: () => {},
onError: (error) => {},
onParticipantJoined: (data) => {},
onParticipantLeft: (data) => {},
onMuteChanged: (data) => {},
onCallEnded: () => {}Simple per-minute billing to project owners only:
Integration Support: We handle the first 30-50 customers personally
Ready to integrate? Contact us for your API key and we'll have you up and running in <10 minutes.
Telegram: @braunschweiler
For additional modals, please see our Figma design file here: Figma Designs