SDK overview

SDKs

Telenow ships official SDKs for the browser, React Native apps, and your backend. Install one package and the SDK handles everything below the UI: session init, the audio WebSocket, microphone capture, echo/noise handling, jitter-buffered playback, barge-in, automatic reconnection, transcripts, and latency telemetry. You own only your UI.

Packages

PlatformPackageRegistryInstall
Web (any framework)@telenow/clientnpmnpm i @telenow/client
React@telenow/reactnpmnpm i @telenow/react @telenow/client
React Native (iOS + Android)@telenow/react-nativenpmnpm i @telenow/react-native @telenow/client
Node / Bun / Deno / edge (backend)@telenow/servernpmnpm i @telenow/server
Python / Django / FastAPI (backend)telenowPyPIpip install telenow

Rust, cURL, or any other language: call the plain REST API directly — every endpoint is documented with curl, and your agent's Publish tab shows ready-to-paste cURL, Node, Python, and Rust samples with your agent id filled in. (Native Swift, Kotlin/Android, and Flutter SDKs are coming soon.)

Two API surfaces. For server‑side automation, integration glue, and quick scripts, prefer the /api/v1 automation surface — it's a narrow, stable set of read/chat/webhook endpoints, takes an API key only (X-API-Key), and returns flat JSON (no envelope), so platform/no‑code steps map fields directly. The backend SDK and the full /api/… CRUD surface use the same key. See Automation platforms.

Your first call in 3 steps

  1. Create an agent — dashboard → Agents → New agent. Give it a prompt and voice, test it with the built-in browser call, and copy its agent ID.
  2. Get a credential — for backend work, an API key (dashboard → Developers tab). For a no-backend browser call, publish the agent and copy its public slug (Publish tab).
  3. Install and call — pick your page below; each has a copy-paste quickstart, a full options table, and troubleshooting. Your agent's Publish tab also shows the same samples with the agent ID pre-filled.

Which page do you need?

  • Web & React — voice calls in the browser with your own UI.
  • React Native — voice calls inside your iOS & Android app.
  • Backend (Node & Python) — place AI phone calls, place manual / softphone calls (click-to-call for your CRM), run text chat (Chat API), mint web sessions, verify webhooks, and build Custom API (bring-your-own-LLM) endpoints.

How a client call gets authorized

Every client SDK supports the same three options:

  1. Backend-minted session (recommended). Your backend calls init-web-call with its org API key — one line with the server SDK — and hands the returned { sessionId, websocketUrl } to your app. The client SDK accepts it as session and connects directly. No credential ever ships to the client.
  2. Public agent slug. For published agents, pass publicSlug — no auth at all (rate-limited, with optional access code).
  3. Ephemeral client token. Mint a short-lived, agent-scoped token with the server SDK and pass it as token. (Availability depends on your plan — when in doubt, use option 1, which works everywhere.)
Your app ──(1) ask for session──▶ Your backend ──(2) server SDK createWeb()──▶ Telenow
Your app ◀─(3) { sessionId, websocketUrl }──────  Your backend
Your app ──(4) SDK connects: audio ⇄ agent ─────▶ Telenow

What the SDKs handle for you

ConcernHow
Echo & noiseBrowser: WebRTC echo cancellation + noise suppression (on by default). React Native: the platform's voice-communication audio mode (hardware AEC/NS on iOS & Android).
Audio wire formatμ-law 8 kHz frames, encoded/decoded for you — don't change the defaults.
Network jitterAdaptive jitter buffer (RFC-3550 style) with underrun concealment.
Barge-inWhen the caller interrupts, queued agent audio is flushed instantly.
Drops & reconnectsExponential-backoff reconnect that resumes the same session.
TranscriptsLive user + agent lines streamed to a callback.
Latency metricsThe SDK answers server pings so your analytics show real round-trip times.