backend/— Express server that holds your API key and calls Akapulu with@akapulu/serverfrontend/— React app (Vite) using@akapulu/reactand@akapulu/react-ui
Prerequisites
- Node.js 20+ and npm
- An Akapulu API key — akapulu.com/api-keys
- A scenario — akapulu.com/scenarios (guide)
Setup
Clone the repo:backend/.env.example to backend/.env.local and add your API key:
backend/server.ts:
localhost:3001) and leave it running:
How it works
The frontend (localhost:5173) calls your backend (localhost:3001), which calls Akapulu with your API key.
This demo does not authenticate users. Anyone who can reach /api/connect can start a conversation on your account. Before production, authenticate users on that route. Pass those headers with config.headers on AkapuluProvider (object or a function called when the request is sent).
The backend exposes two routes:
AkapuluProvider and renders AkapuluConversation (connect chime plays when the call goes live; pass playConnectChime={false} to disable):
Related examples
- Prebuilt UI (styled) — dark theme, custom tool toasts, post-call review
- Customized UI — custom hooks + Daily video UI + post-call review

