Skip to main content
Kupe App mixed three things on /api/call: provider webhooks (TwiML/XML), WebSockets for media, and POST /create_call for a single outbound PSTN dial. Kupe splits those.

Web / SDK realtime (not telephony)

Kupe App web testers:
  1. GET /api/call/init-web-media-stream
  2. GET /api/call/auth/token (RSA JWT, 1 hour, issuer inavlabs_voice_platform)
  3. WS /api/call/web-media-stream
Kupe:
  1. POST /v1/realtime/sessions with Bearer sk-kupe-...
  2. Connect to wss://x.kupe.in/agents/v1/realtime
This path is web-only — it does not write telephony minutes. Event names are OpenAI-shaped. See Realtime.
Pass agent_id on session create to reuse a Hub agent instead of inline name / prompt.

One outbound phone call

Kupe App POST /api/call/create_call: Kupe Hub has no create_call. A single dial is a one-contact campaign:
  1. POST /v1/batches with agent_id + telephony_account_id
  2. POST /v1/batches/{batch_id}/contacts:bulk with phone_number and variables
  3. POST /v1/batches/{batch_id}/start
MCP wraps that as trigger_outbound_call. There is no workflow_id — Kupe does not run Kupe App workflows. See Campaigns.

Provider media sockets (do not reimplement)

Kupe App exposed raw provider WebSockets:
  • WS /api/call/media-stream/agents/{agent_id} (Twilio)
  • WS /api/call/plivo-media-stream/agents/{agent_id}
  • WS /api/call/exotel-media-stream/agents/{agent_id}
  • WS /api/call/elison-media-stream/agents/{agent_id}
  • Workflow variants of each
  • WS /api/call/openai-twilio-media-stream
  • WS /api/call/stt-stream
Kupe telephony media is wss://x.kupe.in/agents/v1/media?ticket=...&provider=.... Tickets are issued by inbound/outbound webhooks, not by your client. They are not in the public OpenAPI. Point Plivo/Twilio/Exotel applications at Kupe’s webhook URLs (set on purchase for managed numbers), not at Kupe App sockets.

Provider HTTP webhooks

GET /api/call/ was an HTML “platform is running” page. Use GET https://x.kupe.in/health (and /ready) instead.

Text / WhatsApp sockets

WS /api/text/stream_text_ws, workflow-builder WS, and /api/text/whatsapp/webhook have no Kupe Hub public equivalent. WhatsApp is not in the public OpenAPI.