Skip to main content
This page maps Plivo’s Voice Call API - outbound call creation and in-call control - to the Vobiz REST API and SDKs, method by method. Both share the /Account/{auth_id}/Call/ path shape and the from / to / answer_url model; the differences are the base host, auth headers, SDK method names, and a couple of endpoints Vobiz handles through XML.

Plivo → Vobiz mapping table

REST paths are relative to each base URL: Plivo https://api.plivo.com/v1, Vobiz https://api.vobiz.ai/api/v1. SDK columns use Python names (Node is the camelCase equivalent: make_callmakeCall).
OperationPlivo RESTPlivo SDKVobiz RESTVobiz SDK (Python)
Make outbound callPOST /Account/{id}/Call/client.calls.create(...)POST /Account/{id}/Call/client.calls.make_call(...)
List live callsGET /Account/{id}/Call/?status=liveclient.calls.list(...)GET /Account/{id}/Call?status=liveclient.live_calls.list_live_calls(...)
Get one live callGET /Account/{id}/Call/{uuid}/?status=liveclient.calls.get(uuid)GET /Account/{id}/Call/{uuid}?status=liveclient.live_calls.get_live_call(...)
List queued callsGET /Account/{id}/Call/?status=queuedclient.calls.list(...)GET /Account/{id}/Call/?status=queuedclient.live_calls.list_queued_calls(...)
Get one queued callGET /Account/{id}/Call/{uuid}/?status=queuedclient.calls.get(uuid)GET /Account/{id}/Call/{uuid}/?status=queuedclient.live_calls.get_queued_call(...)
Hang up a live callDELETE /Account/{id}/Call/{uuid}/client.calls.hangup(uuid) / delete(uuid)DELETE /Account/{id}/Call/{uuid}client.live_calls.hangup_call(...)
Cancel a queued callDELETE /Account/{id}/Request/{request_uuid}/client.calls.cancel(request_uuid)No REST equivalent — see gaps
Transfer a live callPOST /Account/{id}/Call/{uuid}/client.calls.transfer(uuid, ...)Via <Redirect> XML — see gaps
Play audio on a callPOST /Account/{id}/Call/{uuid}/Play/client.calls.play(uuid, urls)POST /Account/{id}/Call/{uuid}/Play/client.play_audio.call(...)
Stop audio playbackDELETE /Account/{id}/Call/{uuid}/Play/client.calls.play_stop(uuid)DELETE /Account/{id}/Call/{uuid}/Play/client.play_audio.stop_audio_call(...)
Speak text (TTS)POST /Account/{id}/Call/{uuid}/Speak/client.calls.speak(uuid, text)POST /Account/{id}/Call/{uuid}/Speak/client.speak_text.call(...)
Stop TTSDELETE /Account/{id}/Call/{uuid}/Speak/client.calls.speak_stop(uuid)DELETE /Account/{id}/Call/{uuid}/Speak/client.speak_text.stop_speak_call(...)
Send DTMF digitsPOST /Account/{id}/Call/{uuid}/DTMF/client.calls.send_digits(uuid, digits)POST /Account/{id}/Call/{uuid}/DTMF/client.dtmf.send_dtmf(...)
Start recordingPOST /Account/{id}/Call/{uuid}/Record/client.calls.record(uuid)POST /Account/{id}/Call/{uuid}/Record/client.record_calls.start_recording(...)
Stop recordingDELETE /Account/{id}/Call/{uuid}/Record/client.calls.record_stop(uuid)DELETE /Account/{id}/Call/{uuid}/Record/client.record_calls.stop_recording(...)
Start audio streamPOST /Account/{id}/Call/{uuid}/Stream/client.calls.start_stream(uuid, ...)POST /Account/{id}/Call/{uuid}/Stream/client.audio_streams.start_stream(...)

Before / after: make an outbound call

The change is the client constructor and method name (createmake_call), plus passing auth_id explicitly. Call parameters carry over unchanged. Plivo (Python):
import plivo

client = plivo.RestClient("PLIVO_AUTH_ID", "PLIVO_AUTH_TOKEN")
client.calls.create(
    from_="14155551234",
    to_="+919876543210",
    answer_url="https://example.com/answer",
    answer_method="POST",
)
Vobiz (Python):
from vobiz import Vobiz

client = Vobiz(api_key="VOBIZ_AUTH_ID", auth_token="VOBIZ_AUTH_TOKEN")
client.calls.make_call(
    auth_id="VOBIZ_AUTH_ID",
    from_="14155551234",
    to="+919876543210",
    answer_url="https://example.com/answer",
    answer_method="POST",   # required on Vobiz
)
Both return api_id, request_uuid, and message: "Call fired". To dial multiple destinations in one request, both accept up to 1000 numbers in to separated by <.

Key differences & gotchas

  • Auth headers, not Basic auth. Vobiz uses X-Auth-ID and X-Auth-Token request headers instead of Plivo’s HTTP Basic. Raw-HTTP and webhook-verification code must change.
  • Base URL keeps an extra segment: api.vobiz.ai/api/v1 (note the /api before /v1).
  • answer_method is required on Vobiz make_call. Plivo defaults it to POST; always pass it on Vobiz.
  • In-call actions are separate resources. client.calls.play/speak/send_digits/record become client.play_audio, client.speak_text, client.dtmf, client.record_calls.

What has no Vobiz equivalent

  • Live call transfer. Plivo’s client.calls.transfer (aleg_url/bleg_url) has no Vobiz REST endpoint. Use the <Redirect> VobizXML verb to point a leg at a new answer_url.
  • Cancel a queued call. Plivo’s DELETE /Request/{request_uuid}/ (client.calls.cancel) has no Vobiz equivalent. You can list/inspect queued calls but can only hang them up after they go live via hangup_call.
For everything outside this Call-resource scope (conferences, CDRs, numbers, applications, webhooks/signatures, PlivoXML → VobizXML), see the full migration guide and the Vobiz vs Plivo comparison.