Documentation

Voice agents are easier than ever. Official SDKs on PyPI and npm — same session the hub uses. On-site guides below. OpenAPI, Try-it playground, and SDK reference live at docs.kupe.in.

Sample code

Mint a key in the hub, set KUPE_API_KEY, create a session. send_text stays in lockstep across both clients. Full walkthrough on the realtime page.

Python — pip install kupepip install kupe
from kupe import Kupe

client = Kupe()  # KUPE_API_KEY
session = client.realtime.sessions.create(
    name="Priya",
    voice="priya",
    prompt="You collect overdue EMIs. Be warm and brief.",
    greeting="Hi, this is Priya from the bank.",
)
with client.realtime.connect(session) as rt:
    rt.send_text("Hi — remind them EMI is due tomorrow.")
    for event in rt:
        if event.type == "response.output_audio_transcript.done":
            print(event.transcript)
TypeScript — npm install kupe-sdknpm install kupe-sdk
import { Kupe } from "kupe-sdk";

const kupe = new Kupe(); // reads KUPE_API_KEY / KUPE_BASE_URL
const session = await kupe.realtime.sessions.create({
  name: "Priya",
  voice: "priya",
  prompt: "You collect overdue EMIs. Be warm and brief.",
  greeting: "Hi, this is Priya from the bank.",
});
const rt = await kupe.realtime.connect(session);
rt.send_text("Hi — remind them EMI is due tomorrow.");
for await (const event of rt) {
  if (event.type === "response.output_audio_transcript.done") {
    console.log(event.transcript);
  }
}