GA Plivo

Plivo Voice + Audio Streaming

Low-cost telephony with bidirectional WebSocket audio streaming included in the call price, supporting 8 kHz mu-law or 16 kHz linear PCM, for connecting your own AI pipeline.

Est. per minute$0.03 - 0.10

Overview

Best for: Cheapest DIY phone transport for your own AI pipeline, with optional 16 kHz audio.

At a glance

Platform $/min$0
All-in priceNo
Entry plan $/mo$0
Phone numbersYes
Own LLMYes
Own keysYes
RecordingYes
Noise cancelYes
WebSocketYes
Phone / SIPYes
Self-hostNo
Open weightsNo

Audio streaming, noise cancellation and recording are included in call price (inbound local $0.0055/min). Free trial terms not verified.

Audio in

mu-law 8 kHz or L16 8/16 kHz over WebSocket

Audio out

playAudio events with base64 audio, 8000 or 16000 Hz

Languages

Your models.

Latency

Not applicable (transport).

Regions

Global carrier coverage (not detailed).

Compliance

Not verified in this research.

Features

  • telephony
  • audio streaming included
  • noise cancellation included
  • 16 kHz streams
  • free call recording (storage free 90 days)
  • AMD at $0

Pricing

WhatPriceUnitNotes
Inbound local$0.0055per minuteAudio streaming and noise cancellation included.
Outbound local$0.0115per minute
Browser SDK / SIP$0.0033per minute
Local number$0.50per monthToll-free $1.00/month.
Call recording$0.00per minuteStorage free 90 days then $0.0004/min/month.
How the per-minute estimate was worked out

$0.0055-$0.0115 telephony + your own STT/LLM/TTS ($0.02-$0.09). Not a vendor figure.

Free tier: Not verified.

Source: plivo.com

Setup

  1. Buy a Plivo number and set its answer URL to an endpoint returning Plivo XML with <Stream>.
  2. Accept the WebSocket; decode incoming audio; run your pipeline.
  3. Send playAudio events back; use clearAudio on barge-in and checkpoint to know when playback finished.

Endpoint

Answer URL returning XML; your wss:// server

Authentication

Plivo Auth ID / Auth Token

Quick start javascript

// Plivo answer URL: bidirectional 16 kHz stream to your AI server
import express from "express";
const app = express();
app.all("/answer", (req, res) => {
  res.type("application/xml").send(
    '<Response>' +
      '<Stream bidirectional="true" keepCallAlive="true" ' +
      'contentType="audio/x-l16;rate=16000">wss://ai.example.com/plivo</Stream>' +
    '</Response>');
});
app.listen(3000);
// On the socket, send audio back as:
// { "event": "playAudio", "media": { "contentType": "audio/x-l16", "sampleRate": 16000, "payload": "<base64>" } }

Written from the current docs. Check the vendor's SDK version before you ship.

Warnings

Default content type is inconsistent in docs

One page says the default is mu-law 8 kHz, the XML reference says L16 8 kHz. Always set contentType explicitly and match sampleRate in playAudio.

keepCallAlive defaults to false

If the stream ends the call hangs up unless keepCallAlive="true".

Bidirectional limits audioTrack

With bidirectional=true, audioTrack cannot be outbound or both.

AI agent product pricing not on this page

Plivo's own AI agent offering was not priced on the voice pricing page; check the AI Agents page or sales.

Plus 12 warnings that apply to all platforms and telephony APIs. See category warnings.

Limits

  • Not published in sources reviewed

Models and products

NameStatusNotes
Audio Streaming (<Stream>)GABidirectional option, keepCallAlive, contentType audio/x-mulaw;rate=8000 or audio/x-l16;rate=8000|16000; playAudio, checkpoint and clearAudio commands.

Docs and sources

Docs

Sources used

Not fully verified

Free trial terms, concurrency limits, compliance.

Similar platforms APIs

Spotted a wrong price or a dead link?